본문 바로가기

JAVA/UI

체크박스, 라디오버튼

완성본

라디오버튼은 참조

https://blog.naver.com/skykingkjs/150145068901

 

[자바][스윙] JRadioButton 라디오 버튼

한번에 1개만 선택 할 수 있는 것이 라디오 버튼이다. 라디오버튼은 아래의 순서로 만든다 1.라디...

blog.naver.com

 

 

 

main

package awtSample07;

public class mainClass {

	public static void main(String[] args) {
		new WindowTest();
	}
}

windowTest

public class WindowTest extends JFrame implements ItemListener{

	Checkbox cb1,cb2,cb3,cb4,cb5,cb6;//체크박스 생성
	Label label1,label2;
	
	JRadioButton radioBtn[] = new JRadioButton[3];
	JPanel panel = new JPanel();
	
	public WindowTest() {
		/*
		 	Check Box(취미)	- 다중선택
		 	Radio Button 	- 하나 선택(다른하나는 꺼짐)
		 	
		 	AWT : radio버튼 없음 -> checkbox사용
		 	swing : 버튼 있음 -> JRadioButton
		 	
		 */
		CheckboxGroup cbg1 = new CheckboxGroup();
		//cb1,cb2,cb3
		cb1 = new Checkbox("사과", cbg1, true);//마지막은 체크가 됐는지 설정
		cb2 = new Checkbox("배", cbg1, false);//마지막은 체크가 됐는지 설정
		cb3 = new Checkbox("바나나", cbg1, false);//마지막은 체크가 됐는지 설정
		
		CheckboxGroup cbg2 = new CheckboxGroup();
		cb4 = new Checkbox("빨강", cbg2, false);
		cb5 = new Checkbox("파랑", cbg2, true);//->12345는 스윙에서 라디오 버튼 
		
		cb6 = new Checkbox("exit");//윈도우 꺼지는 이벤트 발생-> 체크박스
		
		label1 = new Label("label1");
		label2 = new Label("label2");
		
		add(cb1);
		add(cb2);
		add(cb3);
		add(cb4);
		add(cb5);
		add(cb6);

		cb1.addItemListener(this);
		cb2.addItemListener(this);
		cb3.addItemListener(this);
		cb4.addItemListener(this);
		cb5.addItemListener(this);
		cb6.addItemListener(this);
		//위를 list아닌 배열로 사용하면 편함
		
		add(label1);
		add(label2);
		
		setLayout(new FlowLayout());
		
		setBounds(0, 0, 640, 480);
		setVisible(true);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	@Override
	public void itemStateChanged(ItemEvent e) {
	//	JOptionPane.showMessageDialog(null, "클릭");
		//위에 cb1.addItemListener(this) 추가해야 확인창이 뜸
		
		Object obj = e.getSource();
		//Button btn = (Button)e.getSource();<-버튼만 사용가능하므로 제외
		//아래가 전체 사용하는 방법
		
		if (obj == cb6/*나가는것*/) {//obj와 직접비교 가능
			Checkbox cb = (Checkbox)obj;
			if (cb.getState()) {//체크 되었음을 의미
				System.exit(0);//exit을 체크하면 창이 꺼지게 만듬
			}else {//체크가 안되었을때
				
			}
		}else if (obj == cb1 || obj == cb2 || obj == cb3) {
			Checkbox cb = (Checkbox)obj;
			if (cb.getState()) {
				label1.setText(cb.getLabel());//선택한 과일이 label1에 나오게 함
			}
		}else if (obj == cb4 || obj == cb5) {
			Checkbox cb = (Checkbox)obj;
			if (cb.getState()) {
				label2.setText(cb.getLabel());//선택한 색이 label2에 나오게 함
			}
		}
	}
}

'JAVA > UI' 카테고리의 다른 글

버튼 클릭하여 새로운 창 열기1 (Frame 새로생성)  (0) 2020.06.12
layout(버튼과 라벨 기본셋팅)  (0) 2020.06.12
가위바위보 게임 프로그램  (0) 2020.06.12
label / 확인창 뜨게하기  (0) 2020.06.11
Observer  (0) 2020.06.11