컴퓨터 프로그래밍 실습 #7 제 4 장 GUI 클래스 작성
Contents GUI – Button GUI - Textfield
참고] 4.10, 4.11 – PushCounter.java, PushCounterPanel.java GUI – Button VoteCounter.java와 VoteCounterPanel.java를 수정해보자. 후보자 1명을 추가한다. – for Sam Sam을 위한 변수 추가 - vote counter, button, label Sam을 위한 내부 class, SamButtonListener 추가 Sam button을 눌렀을 때 반응하는 listener. ActionListener를 추가할 때, class instance 생성. panel에 Sam의 button과 label을 추가 참고] 4.10, 4.11 – PushCounter.java, PushCounterPanel.java
GUI – Textfield BMI.java , BMIPanel.java // ************************************************************* // BMI.java // // BMI(body mass index)를 계산하기 위한 GUI를 구성한다. import javax.swing.JFrame; public class BMI { // --------------------------------------------------------- // BMI GUI를 생성하고 보여준다. public static void main(String[] args) JFrame frame = new JFrame ("BMI"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); BMIPanel panel = new BMIPanel; frame.getContentPanel().add(panel); frame.pack(); frame.setVisible (true); }
// ************************************************************* // BMIPanel.java // // GUI에서 BMI를 계산한다. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class BMIPanel extends JPanel { private int WIDTH = 300; private int HEIGHT = 120; private JPanel heightLabel, weightLabel, BMILabel, resultLabel; private JTextFied height, weight; private JButton calculate; // --------------------------------------------------------- // GUI를 구성한다. public BMI() // textfield (height와 weight)의 label 생성 heightLabel = new JLabel ("Your height in meters : "); weightLabel = new JLabel ("Your weight in kilograms : ");
// "this is your BMI" label 생성 // height을 입력받을 JTextField 생성 // weight을 입력받을 JTextField 생성 // BMI를 계산할 button 생성 // button을 눌렀을 때 대응하는 BMIListener 생성 // panel에 height label과 height textfield를 추가 // panel에 weight label과 weight textfield를 추가 // panel에 button 추가 // panel에 BMI label 추가 // panel에 BMI결과를 나타내는 label 추가 // panel의 크기 지정 // panel의 색 지정 }
// ********************************************************* // 계산 button의 action listener를 나타낸다. private class BMIListener implements ActionListener { // ----------------------------------------------------- // button을 눌렀을 때 BMI 계산 public void actionPerformed (ActionEvent event) String heightText, weightText; int heightVal, weightVal; double bmi; // textfield(height, weight)에서 text를 가지고 온다. // Integer.parseInt를 이용하여 text를 int로 형변환한다. // BMI 계산 : 체중 / 신장 / 신장 or 체중 / 신장2 // 결과 label에 BMI 결과를 나타낸다. Double.toString을 사용하여 string으로 형변환한다. }
참고] 4.12, 4.13 – Fahrenheit.java, FahrenheitPanel.java GUI – Textfield BMI 프로그램을 완성해보자. BMI(Body Mass Index) 신체질량지수 – 비만도 측정에 사용. 계산법 : 체중(Kg) / 신장2 (m2) 25이상이면 비만 1단계. 주석의 설명에 따라 프로그램을 완성해보자. 참고] 4.12, 4.13 – Fahrenheit.java, FahrenheitPanel.java