Download presentation
Presentation is loading. Please wait.
Published byRobert Richardson Modified over 8 years ago
1
JAVA 실습 6 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com 1HPC & OT Lab.
2
LayoutManager BorderLayout – frame 이 디폴트로 취하는 Layout FlowLayout – Panel 의 기본 레이아웃 BoxLayout – FlowLayout 과 유사하나 수직방향으로 정렬이 가능하다 #4 - 2HPC & OT Lab.
3
#4 - 3 북쪽 남쪽 서쪽동쪽중앙 HPC & OT Lab.
4
#4 - 4HPC & OT Lab.
5
FlowLayout #4 - 5HPC & OT Lab.
6
BoxLayout #4 - 6HPC & OT Lab.
7
import javax.swing.*; public class SimpleGui1{ public static void main(String[] args){ JFrame frame = new JFrame(); Jbutton button = new JButton(“click me”); // 프레임과 버튼 생성 frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); // 이렇게 하면 창 닫을때 프로그램이 종료됨 frame.getContentPane().add(button); // 버튼을 프레임의 content pane 에 추가함 frame.setSize(300,300); // 프레임의 크기를 픽셀 단위로 지정 frame.setVisible(true); // 화면에 표시하도록 설정 } HPC & OT Lab.
8
#Tip Subtyping 과 Subclassing 의 차이 (interface and abstraction) HPC & OT Lab.8
9
Import javax.swing.*; Import java.awt.event.*; Public class SimpleGuiB implements ActionListener{ JButton button; public static void main(String[] args){ SimpleGuiB gui = new SimpleGuiB(); gui.go(); } public void go(){ JFrame frame = new JFrame(); button = new JButton(“click me”); button.addActionListener(this); frame.getContentPane().add(button); frame.setDefaultCloseOperation(Jframe.EXIT_ON_C LOSE); #4 - 9 frmae.setSize(300,300); frame.setVisible(true); } public void actionPerformed(ActionEvent event){ button.setText(“I’ve been clicked!!”); } HPC & OT Lab.
10
10HPC & OT Lab.
11
11
12
HPC & OT Lab.12
13
HPC & OT Lab.13
14
실습 5. Input, Output and State 1. Swing package 의 JPanel class 와 JFrame class 를 배운다. 2. AWT package 의 Graphics class 를 배운다. 3. Field Variable 과 Scope rule 에 대해 배운다. 14HPC & OT Lab.
15
SwingFrameMain.java // Swing 기본창 만들기 import javax.swing.*; class SwingFrame extends JFrame { // 내용없음 } public class SwingFrameMain { public static void main(String[] args) { JFrame f = new SwingFrame( “ Swing 기본창만들기 ” ); f.setSize(300, 200); f.show(); } 15HPC & OT Lab.
16
기초실습 1 - JFrame Class JFrame 은 스윙에서 타이틀이 있는 창을 표현하기 위해서 사용되는 클래 스이다. 생성자 –JFrame() –JFrame(String title) 메소드 –Container getContentPane() : 프레임의 contentPane 을 리턴. Jframe 에서 버튼이나 다른 컴포넌트를 붙이기 위해서 사용 –Void set setDefaultCloseOperation(int operation) : 사용자가 프레임의 우측 상단에 있는 윈도우 종료버튼을 클릭하는 경우에 수행 될 디폴 트로 작업을 설정 HPC & OT Lab.
17
#4 - 17 DrawShapes.java import java.awt.*; import javax.swing.*; public class DrawShapes extends JFrame { public void paint(Graphics g) { g.setColor(Color.BLACK); g.drawOval(10, 30, 20, 20); g.fillRect(50, 30, 20, 20); g.drawLine(90, 50, 100, 30); g.drawLine(100, 30, 110, 50); g.drawLine(90, 50, 110, 50); g.drawString("Hello 홍길동 ", 10, 70); } 사용자가 직접 호출하는 일은 절대 없다. 이것은 시스템에서 직접호출. HPC & OT Lab.
18
#4 - 18 DrawShapes.java public static void main(String[] args) { DrawShapes ds = new DrawShapes(); ds.setSize(120, 80); ds.setVisible(true); } 실행결과 HPC & OT Lab.
19
#4 - 19 기초실습 2 - JPanel Class JPanel 클래스는 보통 투명하며, 다른 컴포넌트를 붙 이기 위해서 사용된다. 생성자 –JPanel() : 패널을 생성한다. 디폴트로 생성된 패널 은 플로우 레이아웃을 사용한다. –JPanel(LayoutManager layout) : 레이아웃 매니저를 갖는 패널을 생성한다. HPC & OT Lab.
20
#4 - 20 ClockWriter.java import java.awt.*; import javax.swing.*; import java.util.*; public class ClockWriter extends JPanel { int width=200; public ClockWriter() { JFrame clocks_frame = new JFrame(); clocks_frame.getContentPane().add(this); clocks_frame.setTitle("Clock"); clocks_frame.setSize(width, width); clocks_frame.setVisible(true); } HPC & OT Lab.
21
#4 - 21 ClockWriter.java public void paintComponent(Graphics g) {g.setColor(Color.white); g.fillRect(0,0, width, width); GregorianCalendar time = new GregorianCalendar(); int minutes_angle = 90 - (time.get(Calendar.MINUTE)*6); int hour_angle = 90 - (time.get(Calendar.HOUR)*30); int left_edge = 50; int top = 50; int diameter = 100; g.setColor(Color.black); g.drawOval(left_edge, top, diameter, diameter); g.setColor(Color.red); g.fillArc(left_edge + 5, top + 5, diameter - 10, diameter - 10, minutes_angle, 5); HPC & OT Lab.
22
#4 - 22 ClockWriter.java g.setColor(Color.blue); g.fillArc(left_edge + 25, top + 25, diameter - 50, diameter - 50, hour_angle, -8); } public static void main(String[] args) { new ClockWriter(); } 실행결과 HPC & OT Lab.
23
#4 - 23 기초실습 3 창을 최소화 했다가 다시 활성화할 때마다 크기가 반 으로 줄어드는 달걀을 그리는 프로그램을 작성하시 오. –paintComponent() method 에 대해 이해한다. – 실행결과 HPC & OT Lab.
24
#4 - 24 EggWriter.java import java.awt.*; import javax.swing.*; public class EggWriter extends JPanel { private int WIDTH = 300; private int HEIGHT = 200; private Color BACKGROUND_COLOR = Color.yellow; private int egg_width = 600; private int egg_height = 400; public EggWriter() { JFrame my_frame = new JFrame(); my_frame.getContentPane().add(this); my_frame.setTitle("EggWriter"); HPC & OT Lab.
25
#4 - 25 EggWriter.java my_frame.setSize(WIDTH, HEIGHT); my_frame.setVisible(true); my_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void paintComponent(Graphics g) { g.setColor(BACKGROUND_COLOR); g.fillRect(0, 0, WIDTH, HEIGHT); int left_border = 10; int baseline = 190; g.setColor(Color.pink); g.fillOval(left_border, baseline - egg_height, egg_width, egg_height); g.setColor(Color.black); HPC & OT Lab.
26
#4 - 26 EggWriter.java g.drawOval(left_border, baseline - egg_height, egg_width, egg_height); egg_width = egg_width / 2; egg_height = egg_height / 2; } public static void main(String[] args) { new EggWriter(); } HPC & OT Lab.
27
#4 - 27 응용실습 1 다음과 같이 Z-MAN 을 그리시오 – 창을 최소화 했다가, 다시 활성화 시켜도 그대로 나오도록 해야 함 – 본인의 이름과 학번이 나오도록 한다. – 실행결과 HPC & OT Lab.
28
#4 - 28 응용실습 2 아래와 같은 명함을 만드는 프로그램을 작성하시오. – 창을 최소화 했다가, 다시 활성화 시켜도 그대로 나오도록 해야 함 – 실행결과 HPC & OT Lab.
29
#4 - 29 응용실습 3 아래와 같은 달력을 그리는 프로그램을 작성하시오. – 이번 달을 그리도록 함. – 요일 별로 정확한 날짜를 표시하도록 함. – 최소화한 후 다시 활성화 시켰을 경우 달력이 보 이도록 함. – 실행결과 HPC & OT Lab.
30
#4 - 30 응용실습 4 호를 그리는데 창을 최소화 하였다가 다시 띄웠 을 때 호의 색깔과 반지름을 랜덤으로 값을 얻어 와서 그려주도록 한다. – 실행결과 HPC & OT Lab.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.