Download presentation
Presentation is loading. Please wait.
1
5장 조건과 반복 ③
2
Contents 무지개 그리기 투표 하기 제곱근 구하기 급료 계산하기 글자 모양 바꾸기
3
무지개 그리기 무지개를 그리는 프로그램을 작성하시오. 중심이 같은 호를 이용하여 그린다.
여러 가지 색깔을 이용하여 호를 그린다. 여러 가지 색깔을 표현하기 위해, RGB값이 적절히 변하도록 할 수 있다. 또는, 몇 가지 색상이 교대로 바뀌도록 할 수 있다. 교재 p256의 소스리스트 5.15, 5.16 참고
4
투표 하기 Joe, Sam 두 후보에게 투표하기 위한 시스템인 VoteCounter.java, VoteCounterPanel.java 를 완성하시오. 첨부된 파일은 Joe 한 명에게만 투표가 가능하다. 이를 Sam에게도 투표가 가능하도록 확장하라. Sam을 위한 변수를 추가한다. (득표수, 버튼, 레이블) Sam을 위한 버튼과 레이블을 패널에 추가한다. 감청자의 ActionPerformed() 메소드를 적절히 수정한다. 누가 승자인지 나타내 주도록 확장하라. 승자를 나타내기 위한 레이블을 생성하고, 패널에 추가한다. 주의!! 4장에서 이와 비슷한 예제를 다루었었다. 그때는 감청자를 두 개 사용했으나, 여기서는 감청자를 하나만 사용하도록 한다. 교재 p262의 소스리스트 5.19, 5.20을 참고
5
투표 하기 (cont.) //********************************************************* // VoteCounter.java // // Joe, Sam 두 호보를 위한 투표 시스템 import javax.swing.JFrame; public class VoteCounter { public static void main(String[] args) JFrame frame = new JFrame("Vote Counter"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new VoteCounterPanel()); frame.pack(); frame.setVisible(true); }
6
투표 하기 (cont.) //********************************************************* // VoteCounterPanel.java // // Joe, Sam 두 후보에게 투표하기 위한 버튼을 제공하는 패널 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class VoteCounterPanel extends JPanel { private int votesForJoe; private JButton joe; private JLabel labelJoe; // 구성자 public VoteCounterPanel() votesForJoe = 0; joe = new JButton("Vote for Joe"); joe.addActionListener(new VoteButtonListener());
7
투표 하기 (cont.) labelJoe = new JLabel("Votes for Joe: " + votesForJoe);
add(joe); add(labelJoe); setPreferredSize(new Dimension(300, 40)); setBackground(Color.cyan); } // 버튼이 눌리는 이벤트에 반응하기 위한 감청자 private class VoteButtonListener implements ActionListener { // 버튼이 눌렸을 때 불림 public void actionPerformed(ActionEvent event) votesForJoe++; labelJoe.setText("Votes for Joe: " + votesForJoe);
8
제곱근 구하기 제곱근을 구하는 프로그램인 SquareRoots.java를 작성하시오.
정수를 하나 입력 받아, 그것의 제곱근이 무엇인지를 알려주는 다이얼로그 박스를 띄운다. 교재 p266의 소스리스트 5.21의 EvenOdd.java를 참고하시오. 정수를 하나 입력 받아, 그것이 짝수인지 홀수인지 알려주는 다이얼로그 박스를 띄운다.
9
제곱근 구하기 (cont.) //******************************************************************** // EvenOdd.java // // JOptionPane 클래스의 사용을 보여준다. import javax.swing.JOptionPane; class EvenOdd { // // 사용자의 입력값이 짝수인지 홀수인지를 결정한다. // 사용자와의 상호작용을 위해서 여러 개의 다이얼로그 상자를 사용한다. public static void main (String[] args) String numStr, result; int num, again; do numStr = JOptionPane.showInputDialog ("Enter an integer: "); num = Integer.parseInt(numStr); result = "That number is " + ((num%2 == 0) ? "even" : "odd"); JOptionPane.showMessageDialog (null, result); again = JOptionPane.showConfirmDialog (null, "Do Another?"); } while (again == JOptionPane.YES_OPTION);
10
급료 계산하기 일한 시간에 따라 급료를 받는 근로자의 총 급료를 계산하는 PayCheck.java를 작성하시오.
입력 다이얼로그 일한 시간을 입력 받는다. 시간당 얼마의 급료를 받는지 입력 받는다. 출력 다이얼로그 총 급료가 얼마인지 출력 한다.
11
글자 모양 바꾸기 글자의 모양과 크기를 원하는 대로 바꾸는 프로그램인 StyleOptions.java, StyleOptionsPanel.java를 완성하시오. 주어진 프로그램은, 체크 상자를 이용하여 글씨체를 두껍게 하거나 이탤릭체로 바꾼다. 여기에, 라디오 버튼을 이용하여 글씨의 크기를 바꾸는 부분을 추가한다. 글씨 크기 종류 : small(12), medium(24), large(36) 라디오 버튼을 추가하고 그에 해당하는 감청자를 설정하는 방법은, 교재 p273의 소스리스트 5.24, 5.25를 참고한다.
12
글자 모양 바꾸기 (cont.) //******************************************************************** // StyleOptions.java // // 체크 상자의 사용을 보여준다. import javax.swing.JFrame; public class StyleOptions { // 프로그램 프레임을 생성하고 제시한다. public static void main (String[] args) JFrame frame = new JFrame ("Style Options"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); StyleOptionsPanel panel = new StyleOptionsPanel(); frame.getContentPane().add (panel); styleFrame.pack(); styleFrame.setVisible(true); }
13
글자 모양 바꾸기 (cont.) //******************************************************************** // StyleOptionsPanel.java // // 체크 상자의 사용을 보여준다. import javax.swing.*; import java.awt.*; import java.awt.event.*; public class StyleOptionsPanel extends JPanel { private int fontSize = 36; private int style = Font.PLAIN; private JLabel saying; private JCheckBox bold, italic; // // 한개의 레이블과 이 레이블의 글꼴 유형을 제어하는 체크 상자들을 갖는 // 패널을 설정한다. public StyleOptionsPanel() saying = new JLabel ("Say it with style!"); saying.setFont (new Font ("Helvetica", style, fontSize)); bold = new JCheckBox ("Bold"); bold.setBackground (Color.cyan); italic = new JCheckBox ("Italic"); italic.setBackground (Color.cyan);
14
글자 모양 바꾸기 (cont.) StyleListener listener = new StyleListener();
bold.addItemListener (listener); italic.addItemListener (listener); add (saying); add (bold); add (italic); setBackground (Color.cyan); setPreferredSize (new Dimension(300, 100)); } //***************************************************************** // 두 개의 체크 상자에 대한 감청자를 표현한다. private class StyleListener implements ItemListener { // // 레이블의 글꼴 스타일을 갱신한다. public void itemStateChanged (ItemEvent event) style = Font.PLAIN; if (bold.isSelected()) style = Font.BOLD; if (italic.isSelected()) style += Font.ITALIC; saying.setFont (new Font ("Helvetica", style, fontSize));
Similar presentations