티스토리 뷰
28일차인 오늘은 CheckboxEvent에 대해서 학습했다.
실행코드)
package ja_0805;
import java.awt.*;
import java.awt.event.*;
class CheckboxEventTest extends Frame{
Label q1;
Label q2;
Label score;
Checkbox q1cb1, q1cb2, q1cb3, q1cb4;
Checkbox q2cb1, q2cb2, q2cb3, q2cb4;
CheckboxGroup group;
Button end;
CheckboxEventTest(String title){
super(title); //Frame(String title)을 호출한다.
setSize(500, 300);
setLayout(new GridLayout(13,1));
q1 = new Label("1. 다음중 ActionEvent의 actionPerformed메서드가 " + "호출되는 경우는? (모두 고르세요.)");
q1cb1 = new Checkbox("Button을 눌렀을때");
q1cb2 = new Checkbox("TextField에서 Enter키를 눌렀을때");
q1cb3 = new Checkbox("MenuItem을 클릭했을때");
q1cb4 = new Checkbox("List에서 더블킬릭으로 item을 선택했을 때");
q2 = new Label("2. Frame의 기본 LayoutManager는? (하나만 고르세요.)");
group = new CheckboxGroup();
q2cb1 = new Checkbox("FlowLayout", group, false);
q2cb2 = new Checkbox("GridLayout", group, false);
q2cb3 = new Checkbox("BorderLayout", group, false);
q2cb4 = new Checkbox("CardLayout", group, false);
score = new Label("* 결과 :");
end = new Button("이 버튼을 누르시면 결과를 알수 있습니다.");
end.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
float totalScore = 0;
if(q1cb1.getState()) totalScore += 12.5;
if(q1cb2.getState()) totalScore += 12.5;
if(q1cb3.getState()) totalScore += 12.5;
if(q1cb4.getState()) totalScore += 12.5;
if(q2cb3.getState()) totalScore += 50;
score.setText("* 결과 : 당신의 점수는 " + totalScore + "점 입니다.");
}
});
add(q1);
add(q1cb1); add(q1cb2); add(q1cb3); add(q1cb4);
//문제들 사이에 빈 줄을 하나 삽입하기 위해 사용
add(new Label(""));
add(q2);
add(q2cb1); add(q2cb2); add(q2cb3); add(q2cb4);
add(end);
add(score);
setVisible(true);
}
public static void main(String args[]){
CheckboxEventTest mainWin = new CheckboxEventTest("CheckboxEventTest - Quiz");
}
}
실행결과)
위쪽은 Checkbox로 만들어서 다중 선택이 가능하도록 만들고, 각 이벤트를 첨가하여 totalScore에 점수를 더해주고 있고,
아래쪽은 groupCheckbox를 만들어서 하나만 선택이 가능하도록 만들고, 각 이벤트를 붙혀서 totalScore에 점수를 더해준다.
'back > Java' 카테고리의 다른 글
KH 29일차(Graphics, Font, Image EVENT) (5) | 2022.08.10 |
---|---|
KH 29일차(Graphics, Adapter, WindowEvent) (2) | 2022.08.09 |
KH 27일차(AWT ActionEvent) (0) | 2022.08.06 |
KH 26일차(CardLayout, GridLayout) (0) | 2022.08.04 |
KH 25일차(AWT, Font, Panel, TextField) (0) | 2022.08.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크