AWT>Checkbox

C/Java : 2007. 11. 7. 12:00

체크 상태를 On/Off 할수 있는 스위치

그룹묶기 가능


*

import java.awt.*;
import java.awt.event.*;

public class TestCheckboxes extends Frame implements ItemListener {
 Checkbox cbWhiteBread;
 Checkbox cbWheatBread;
 Checkbox cbRyeBread;
 Checkbox cbToasted;      //변수 선언
 
 TextField tField;
 
 public TestCheckboxes() {
  cbWhiteBread = new Checkbox("White Bread");   //객체생성
  cbWhiteBread.setState(false);    //체크되지 않은 상태로 초기화
  cbWhiteBread.addItemListener(this);
 
  cbWheatBread = new Checkbox("Wheat Bread");
  cbWheatBread.setState(false);
  cbWheatBread.addItemListener(this);
 
  cbRyeBread = new Checkbox("Rye Bread");
  cbRyeBread.setState(false);
  cbRyeBread.addItemListener(this);
 
  cbToasted = new Checkbox("Toasted");
  cbToasted.setState(false);
  cbToasted.addItemListener(this);
 
  tField = new TextField(30);
 
  setLayout(new FlowLayout());
  add(cbWhiteBread);
  add(cbWheatBread);
  add(cbRyeBread);
  add(cbToasted);
  add(tField);
 
  addWindowListener(new WinCloser());
  setTitle("Using Checkboxes");
  setBounds(100,100,300,300);
  setVisible(true);
 }
 
 public void itemStateChanged(ItemEvent ie) {  //체크박스의 상태가 변할때 호출된다.
  // TODO Auto-generated method stub
  Checkbox cb = (Checkbox)ie.getItemSelectable();   //핸들
  if(cb.getState()) tField.setText(cb.getLabel());   //객체의 상태를 체크하고
  else tField.setText("Not " + cb.getLabel());        //해당 객체의 레이블 출력
 }

 public static void main(String[] args) {
  TestCheckboxes tcb = new TestCheckboxes();
 }
}


class WinCloser extends WindowAdapter {
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}

*


그룹으로 묶은 것

*

import java.awt.*;
import java.awt.event.*;

public class TestCheckboxGroup extends Frame implements ItemListener {
 Checkbox cbWhiteBread;
 Checkbox cbWheatBread;
 Checkbox cbRyeBread;
 
 Checkbox cbToasted;
 
 TextField tField;
 
 public TestCheckboxGroup() {
  //생성자를 이용해 지역객체 선언
  CheckboxGroup cbgBread = new CheckboxGroup();
 
  //체크박스를 그룹으로 묶는다
  //체크박스 생성자에 그룹이름을 추가
  cbWhiteBread = new Checkbox("White Bread", cbgBread, false);
  cbWhiteBread.addItemListener(this);
 
  cbWheatBread = new Checkbox("Wheat Bread", cbgBread, false);
  cbWheatBread.addItemListener(this);
 
  cbRyeBread = new Checkbox("Rye Bread", cbgBread, false);
  cbRyeBread.addItemListener(this);
 
  //그룹으로 묶인 것과는 별개로 작동한다.
  cbToasted = new Checkbox("Toasted");
  cbToasted.setState(false);
  cbToasted.addItemListener(this);
 
  tField = new TextField(30);
 
  setLayout(new FlowLayout());
  add(cbWhiteBread);
  add(cbWheatBread);
  add(cbRyeBread);
  add(cbToasted);
  add(tField);
 
  addWindowListener(new WinCloser());
  setTitle("Using Checkboxes");
  setBounds(100,100,300,300);
  setVisible(true);
 }

 public void itemStateChanged(ItemEvent ie) {
  Checkbox cb = (Checkbox)ie.getItemSelectable();
  if(cb.getState()) tField.setText(cb.getLabel());
  else tField.setText("Not " + cb.getLabel());
 }

 public static void main(String[] args) {
  TestCheckboxGroup tcb = new TestCheckboxGroup();
 }
}

class WinCloser extends WindowAdapter {
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}

*

그룹으로 묶인 것과 별도의 것은 체크박스의 모양이 다르다.

Posted by 청웨일