290570
5.31 과제 본문
#무료 암검진 판별, 별자리 판별, 사주 팔자, 숫자한글변환 프로그램 중 하나 이상 선택하여 GUI로 만들기
#1차 시도
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class CancerTest extends JFrame {
JLabel jlb_result;
String[] age = {"40세 미만","40세 이상 ~ 50세 미만","50세 이상"};
JCheckBox[] jcb = new JCheckBox[age.length];
public CancerTest() {
setTitle("암 검진 대상자 확인");
setLayout(new FlowLayout());
jlb_result = new JLabel(" 나이를 선택해주세요 ");
add(jlb_result);
for(int i=0; i<age.length; i++){
jcb[i]= new JCheckBox(age[i]);
add(jcb[i]);
}
JButton btnOK = new JButton(" 확인 ");
add(btnOK);
//프레임에 배경색을 설정.
getContentPane().setBackground(new Color(40, 120, 80));
// 라벨은 원래부터 투명한 성격
// 배경색을 설정하려면 불투명하게 한 다음 설정해야함
jlb_result.setOpaque(true);
jlb_result.setBackground(new Color(2, 199, 68));
setSize(300, 150);
setResizable(false);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btnOK.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jlb_result.setBackground(new Color(245, 103, 1));
jlb_result.setForeground(Color.white);
if (jcb[0].isSelected()) {
jlb_result.setText("구강암");
} else if (jcb[1].isSelected()) {
jlb_result.setText("대장암");
} else if (jcb[2].isSelected()) {
jlb_result.setText("폐암");
}
jcb[0].setVisible(false);
jcb[1].setVisible(false);
jcb[2].setVisible(false);
}
});
}
public static void main(String[] args) {
new CancerTest();
}
}
#결과
#2차 시도 (성별 추가)
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class CancerTest extends JFrame {
JLabel jlb_result;
String[] age = {"40세 미만", "40세 이상 ~ 50세 미만", "50세 이상"};
String[] gender = {"여자", "남자"};
JCheckBox[] ageBox = new JCheckBox[age.length];
JCheckBox[] genderBox = new JCheckBox[gender.length];
JButton btnOK;
public CancerTest() {
setTitle("암 검진 대상자 확인");
setLayout(new FlowLayout());
jlb_result = new JLabel(" 나이를 선택해주세요 ");
add(jlb_result);
for (int i = 0; i < age.length; i++) {
ageBox[i] = new JCheckBox(age[i]);
add(ageBox[i]);
}
btnOK = new JButton(" 확인 ");
add(btnOK);
//프레임에 배경색을 설정.
getContentPane().setBackground(new Color(40, 120, 80));
// 라벨은 원래부터 투명한 성격
// 배경색을 설정하려면 불투명하게 한 다음 설정해야함
jlb_result.setOpaque(true);
jlb_result.setBackground(new Color(2, 199, 68));
setSize(300, 150);
setResizable(false);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btnOK.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jlb_result.setVisible(false);
ageBox[0].setVisible(false);
ageBox[1].setVisible(false);
ageBox[2].setVisible(false);
btnOK.setVisible(false);
jlb_result = new JLabel(" 성별을 선택해주세요 ");
add(jlb_result);
for (int i = 0; i < gender.length; i++) {
genderBox[i] = new JCheckBox(gender[i]);
add(genderBox[i]);
}
jlb_result.setOpaque(true);
jlb_result.setBackground(new Color(2, 199, 68));
btnOK = new JButton(" 확인 ");
add(btnOK);
btnOK.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
genderBox[0].setVisible(false);
genderBox[1].setVisible(false);
jlb_result.setOpaque(true);
jlb_result.setBackground(new Color(2, 199, 68));
if(ageBox[0].isSelected()) {jlb_result.setText("대상자가 아닙니다");}
else if (ageBox[1].isSelected() && genderBox[0].isSelected()) {
jlb_result.setText("위암, 대장암 검진 대상자 입니다");
} else if (ageBox[1].isSelected() && genderBox[1].isSelected()) {
jlb_result.setText("위암, 간암 검진 대상자 입니다");
} else if (ageBox[2].isSelected() && genderBox[0].isSelected()) {
jlb_result.setText("위암 검진 대상자 입니다");
} else if (ageBox[2].isSelected() && genderBox[1].isSelected()) {
jlb_result.setText("간암, 대장암 검진 대상자 입니다");
}
btnOK.setVisible(false);
}
});
}
});
}
public static void main(String[] args) {
new CancerTest();
}
}
#결과