JcheckBox() // 빈 체크박스
JCheckBox(String text) // 문자열 체크박스
JCheckBox(String text, boolean selected) //문자열 체크박스
JCheckBox(Icon image) //이미지 체크박스
JCheckBox(Icon image, boolean selected) // 이미지 체크박스
JCheckBox(String text, Icon image)// 문자열과 이미지를 가진 체크박스
JcheckBox(String text, Icon image, boolean selected) //문자열과 이미지를 가진 체크박스
JcheckBox c = new JCheckBox("사과");
JCheckBox c = new JCheckBox("배", true);
ImageIcon cherryIcon = new ImageIcon("images/cherry.jpg");
ImageIcon selectedCherryIcon = new ImageIcon("images/selectedCherry.jpg");
JCheckBox cherry = new JCheckVox("체리", cherryIcon);
cherry.setSelectedIcon(selectedCherryIcon); //선택 상태의 이미지 달기
package experience;
import javax.swing.*;
import java.awt.*;
public class CheckBoxEx2 extends JFrame {
public CheckBoxEx2() {
setTitle("체크박스 만들기 예제");
setSize(250, 150);
setVisible(true);
Container c = getContentPane();
c.setLayout(new FlowLayout());
ImageIcon cherryIcon = new ImageIcon("image/");// 체리 이미지 링크
ImageIcon selectedCherryIcon = new ImageIcon("images/selectedCherry.jpg"); //선택 상태의 이미지 달기
JCheckBox apple = new JCheckBox("사과");
JCheckBox pear = new JCheckBox("배", true);
JCheckBox cherry = new JCheckBox("체리", cherryIcon);
cherry.setBorderPaintedFlat(true);
cherry.setSelectedIcon(selectedCherryIcon);
c.add(apple);
c.add(pear);
c.add(cherry);
}
public static void main(String[] args) {
new CheckBoxEx2();
}
}
(이벤트처리)
JCheckBox c = new JCheckBox("사과");
c.setSelected(true); //선택 상태 변경
void itemStateChaged9ItemEvent e) // 체크박스의 선택/해제 상태가 변하는 경우 호출
int getStateChange()
// 리턴 값은 선택된 경우 ItemEvent.SELECTED,
해제된 경우 ItemEvent.DESELECTED
Object getItem()
// 이벤트를 발생시킨 아이템 객체 리턴. 체크박스의 경우 JCheckBox 컴포넌트의 레퍼런스 리턴
package experience;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class CheckBoxItemEventEx extends JFrame {
private JCheckBox[] fruits = new JCheckBox[3];
private String[] names = {"사과", "배", "체리"};
private JLabel sumLabel;
public CheckBoxItemEventEx() {
setTitle("체크박스와 ItemEvent");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(new JLabel("사과 100원, 배 500원, 체리 20000원"));
MyItemListener listener = new MyItemListener();
for (int i = 0; i < fruits.length; i++) {
fruits[i] = new JCheckBox(names[i]);
fruits[i].setBorderPainted(true);
c.add(fruits[i]);
fruits[i].addItemListener(listener);
}
sumLabel = new JLabel("현재 0원 입니다,");
c.add(sumLabel);
setSize(250, 200);
setVisible(true);
}
public static void main(String[] args) {
new CheckBoxItemEventEx();
}
private class MyItemListener implements ItemListener {
private int sum=0; //가격의 합 초기화
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
if (e.getItem() == fruits) {
sum += 100;
} else if (e.getItem() == fruits[0]) {
sum+=500;
}else
sum += 20000;
}
else {
if (e.getItem() == fruits[0]) {
sum -= 100;
} else if (e.getItem() == fruits[1]) {
sum -=500;
}else
sum -= 20000;
}
sumLabel.setText("현재"+sum+"원 입니다.");
}
}
}