JAVA/Swing
[JAVA] JCheckBox
로아다
2023. 5. 2. 21:59
728x90
반응형
< 클래스 >
JCheckBox
- 체크할 수 있는 박스를 만드는 클래스
< 관련 클래스 >
ItemListener listener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
System.out.println(((JCheckBox)e.getSource()).getText() +
" 버튼이 방금 변경되었습니다..");
}
};
< 관련 메서드 >
addItemListener(listener)
- 체크박스 컴포넌트의 상태가 변경될 때마다 발생하는 이벤트
setSelected(boolean)
- 선택된 것으로 설정하기 (아이템 리스너 발동시킴)
doClick()
- 프로그램적으로 클릭 발생시키기 (아이템 리스너 발동시킴)
package gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class S08_JCheckBox {
public static void main(String[] args) {
JFrame f = new JFrame("CheckBox example");
JLabel lang = new JLabel("What is your language?");
JCheckBox box1 = new JCheckBox("Java");
JCheckBox box2 = new JCheckBox("Pathon");
JCheckBox box3 = new JCheckBox("C++");
JButton btn = new JButton("Check!");
lang.setBounds(50, 100, 300, 30);
box1.setBounds(50, 150, 100, 50);
box2.setBounds(50, 200, 100, 50);
box3.setBounds(50, 250, 100, 50);
btn.setBounds(50, 300, 100, 30);
f.add(lang);
f.add(box1);
f.add(box2);
f.add(box3);
f.add(btn);
ItemListener listener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
System.out.println(((JCheckBox)e.getSource()).getText() + " 버튼이 방금 변경되었습니다..");
}
};
// 체크박스 컴포넌트의 상태가 변경될 때마다 발생하는 이벤트
box1.addItemListener(listener);
box2.addItemListener(listener);
box3.addItemListener(listener);
// 선택된 것으로 설정하기 (아이템 리스너 발동시킴)
box2.setSelected(true);
// 프로그램적으로 클릭 발생시키기 (아이템 리스너 발동시킴)
box3.doClick();
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Java? " + box1.isSelected());
System.out.println("Pathon? " + box2.isSelected());
System.out.println("C++? " + box3.isSelected());
}
});
f.setLayout(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setBounds(100, 100, 500, 500);
f.setVisible(true);
}
}
728x90
반응형