10 Lab 10 2 Cont Move Circle java

10장 예외 Lab 10 -2



움직이는 원 Cont. //**************************** // Move. Circle. java // // Circle 패널을 통해 사용자가 버튼을 눌렀을 때 원을 // 움직일 수 있도록 GUI를 구성한다. //**************************** import javax. swing. *; import java. awt. *; public class Move. Circle { public static void main(String[] args) { JFrame frame = new JFrame ("Move. Circle"); frame. set. Default. Close. Operation (JFrame. EXIT_ON_CLOSE); frame. set. Size(400, 300); frame. get. Content. Pane(). add (new Circle. Panel(400, 300)); circles. Frame. set. Visible(true); } } 4

움직이는 원 Cont. //**************************** // Circle. Panel. java // 중앙에 원을 그리고, 아래에는 원을 움직이는 버튼을 가지고 있다. //**************************** import javax. swing. *; import java. awt. event. *; public class Circle. Panel extends JPanel { private final int CIRCLE_SIZE = 50; private int x, y; private Color c; //-------------------------// 원과 버튼을 구성한다. //-------------------------public Circle. Panel(int width, int height) { // 원의 좌표를 정한다. x = (width/2) - (CIRCLE_SIZE/2); y = (height/2) - (CIRCLE_SIZE/2); c = Color. green; 5

움직이는 원 Cont. this. set. Layout(new Border. Layout()); // 원을 움직이기 위한 버튼을 생성한다. JButton left = new JButton ("Left"); JButton right = new JButton ("Right"); JButton up = new JButton ("Up"); JButton down = new JButton ("Down"); // 버튼에 감청자를 추가한다. left. add. Action. Listener(new Move. Listener(-20, 0)); right. add. Action. Listener(new Move. Listener(20, 0)); up. add. Action. Listener(new Move. Listener(0, -20)); down. add. Action. Listener(new Move. Listener(0, 20)); // 버튼을 위한 패널을 구성한다. JPanel button. Panel = new JPanel(); button. Panel. add(left); button. Panel. add(right); button. Panel. add(up); button. Panel. add(down); // 주패널의 아래쪽에 버튼 패널을 붙인다. this. add(button. Panel, "South"); } 6

움직이는 원 Cont. //-------------------------// 원을 그린다. //-------------------------public void paint. Component (Graphics page) { super. paint. Component (page); page. set. Color(c); page. fill. Oval(x, y, CIRCLE_SIZE); } //**************************** // 원을 이동하는 버튼에 대한 감청자를 표현한다. //**************************** private class Move. Listener implements Action. Listener { private int dx; private int dy; 7



통화 환전 Cont. //**************************** // Currency. Converter. java // // 다양한 통화를 달러로 계산한다. //**************************** import javax. swing. *; import java. awt. *; public class Currency. Converter { public static void main(String[] args) { JFrame frame = new JFrame("Conrrency Converter"); frame. set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); Rate. Panel rate. Panel = new Rate. Panel(); frame. get. Content. Pane(). add(rate. Panel); frame. pack(); frame. set. Visible(true); } } 10

통화 환전 Cont. //**************************** // Rate. Panel. java // 다양한 통화를 달러로 바꾸는 프로그램. //**************************** import javax. swing. *; import java. awt. event. *; public class Rate. Panel extends JPanel { private double[] rate; private String[] currency. Name; private JLabel result; //--------------------------------// 6개국의 통화를 달러로 바꾸는 패널을 구성한다. // 패널은 헤딩, 텍스트 필드, 콤보 박스, 결과를 보여줄 레이블을 // 포함한다. //--------------------------------public Rate. Panel() { JLabel title = new JLabel("How much is that in dollars"); title. set. Alignment. X(Component. CENTER_ALIGNMENT); title. set. Font (new Font ("Helvetica", Font. BOLD, 20)); 11
![통화 환전 Cont. // 통화 변환을 위한 배열을 구성한다. currency. Name = new String[] 통화 환전 Cont. // 통화 변환을 위한 배열을 구성한다. currency. Name = new String[]](http://slidetodoc.com/presentation_image_h/34a4720f54fe2494c78370174286d3f0/image-12.jpg)
통화 환전 Cont. // 통화 변환을 위한 배열을 구성한다. currency. Name = new String[] {"Select the currency. . ", "European Euro", "Canadian Dollar", "Jpanese Yen", "Australian Dollar", "Indian Rupee", "Mexican Peso"}; rate = new double[] {0. 0, 1. 2103, 0. 7351, 0. 0091, 0. 6969, 0. 0222, 0. 0880}; result = new JLabel("-------------"); add(title); add(result); } //**************************** // 콤보 박스의 감청자를 표현한다. //**************************** private class Combo. Listener implements Action. Listener { //--------------------------------// 선택된 통화가 무엇인지를 보고, 달러로 바꾸어 보여준다. //--------------------------------public void action. Performed (Action. Event event) { int index = 0; result. set. Text("1" + currency. Name[index] + " = " + rate[index] + " U. S. Dollars"); } } } 12


소수 리스트 Cont. //**************************** // Primes. java // // 사용자로부터 입력받은 수까지의 소수를 생성한다. //**************************** import java. awt. *; import javax. swing. *; public class Primes { public static void main(String[] args) { JFrame frame = new JFrame("Primes"); frame. set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); Prime. Panel prime. Panel = new Prime. Panel(); frame. get. Content. Pane(). add(prime. Panel); frame. pack(); frame. set. Visible(true); } } 14

소수 리스트 Cont. //**************************** // Prime. Panel. java // 사용자로부터 입력받은 수까지의 모든 소수를 보여주는 프로그램을 보여준다. //**************************** import java. awt. *; import java. awt. event. *; import javax. swing. *; public class Prime. Panel extends JPanel { private JText. Field number; private JButton compute. Button; private JText. Area prime. List; //--------------------------------// 패널은 헤딩, 텍스트 필드, 버튼, 결과를 보여줄 텍스트 영역을 // 포함한다. //--------------------------------public Prime. Panel() { JLabel heading = new JLabel ("Prime Number Listing"); heading. set. Font (new Font("Helvetica", Font. BOLD, 30)); 15

소수 리스트 Cont. JLabel input. Label = new JLabel ("Enter a number : "); number = new JText. Field(8); compute. Button = new JButton ("Click to see all primes up to your number!"); prime. List = new JText. Area(10, 30); compute. Button. add. Action. Listener(new Button. Listener()); add(heading); add(input. Label); add(number); add(compute. Button); add(prime. List); set. Preferred. Size (new Dimension(400, 320)); set. Background (Color. yellow); } // 버튼의 감청자를 표현한다. public class Button. Listener implements Action. Listener { // 버튼을 클릭했을 때 소수의 리스트를 생성하여 보여준다. public void action. Performed(Action. Event event) { String text. Num = number. get. Text(); int num = Integer. parse. Int(text. Num); String ans = ""; int count = 0; 16

소수 리스트 Cont. if (num < 2) ans = "There no primes less than " + num; else { ans = " " + 2; count++; for (int i = 3; i <= num; i += 2) { boolean found. Divisor = false; int j = 3; while (j < i && !found. Divisor) { if (i % j == 0) found. Divisor = true; else j++; } if (j == i) { ans += " " + i; count++; if (count % 10 == 0) ans += "n"; } } } prime. List. set. Text (ans); } } } 17
- Slides: 17