[JAVA] ItemEvent 예제

정은아·2022년 8월 5일
package ja_0805;

import java.awt.Checkbox;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class ItemEvent_1 extends Frame implements ItemListener{

	Checkbox ckb1, ckb2, ckb3, ckb4;
	TextArea txt_info;
	
	public ItemEvent_1(String title)
	{
		super(title);
		
		Label lbl = new Label("좋아하는 계절을 선택하시오");
		
		txt_info = new TextArea();
		Panel panel = new Panel();
		
		ckb1 = new Checkbox("봄");
		ckb2 = new Checkbox("여름");
		ckb3 = new Checkbox("가을");
		ckb4 = new Checkbox("겨울");
		
		ckb1.addItemListener(this);
		ckb2.addItemListener(this);
		ckb3.addItemListener(this);
		ckb4.addItemListener(this);
		
		panel.add(ckb1);
		panel.add(ckb2);
		panel.add(ckb3);
		panel.add(ckb4);
		
		add("North", lbl);
		add("Center", txt_info);
		add("South", panel);
		
		setSize(300, 300);
		setVisible(true);
	}
	public static void main(String[] args) {
		new ItemEvent_1("Item Event Test ~!");
	}
	@Override
	public void itemStateChanged(ItemEvent e) 
	{
		txt_info.setText(""); 
		
		if (ckb1.getState()) 
		{
		txt_info.append("봄을 좋아하시네요 \n");	
		System.out.println("봄을 좋아하시네요");
		}
		if (ckb2.getState()) 
		{
		txt_info.append("여름을 좋아하시네요 \n");	
		System.out.println("여름을 좋아하시네요");
		}
		if (ckb3.getState()) 
		{
		txt_info.append("가을을 좋아하시네요 \n");	
		System.out.println("가을을 좋아하시네요");
		}
		if (ckb4.getState()) 
		{
		txt_info.append("겨울을 좋아하시네요 \n");	
		System.out.println("겨울을 좋아하시네요");
		}
	}
}
txt_info.setText("");

이 문장이 없다면 콘솔창처럼 누적됩니다.
여름버튼을 계속해서 클릭했다고 가정해봅니다.
프레임 속에서 여름을 좋아하시네요가 떴다 사라지기를 반복하겠지만,
이 문장을 지운다면 한 줄이 사라졌다 나왔다가 아닌 계속해서 반복출력됩니다.
이 문장을 써줌으로써 항상 화면을 새롭게 하고 쓰겠다는 뜻입니다.

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글