PowerPoint Presentation

Similar documents
<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

Microsoft PowerPoint - java1-lecture10.ppt [호환 모드]

gnu-lee-oop-kor-lec10-1-chap10

9장.key

<4D F736F F F696E74202D20C1A63230C0E520BDBAC0AE20C4C4C6F7B3CDC6AE203128B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

11장.key

(Microsoft PowerPoint - java1-lecture7.ppt [\310\243\310\257 \270\360\265\345])

<4D F736F F F696E74202D20C1A63138C0E520C0CCBAA5C6AE20C3B3B8AE28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 04-UDP Programming.ppt

No Slide Title

모든스윙컴포넌트에는텍스트옆에이미지를추가로표시할수있다. ImageIcon image = new ImageIcon("image.gif"); JLabel label = new JLabel(" 이미지레이블 "); label.seticon(image);

Java Programing Environment

Microsoft PowerPoint - 14주차 강의자료

Microsoft PowerPoint - [JAVA프로그래밍]9장GUI

Microsoft PowerPoint - EEL2 Lecture10 -Swing and Event Handling.pptx

05-class.key

PowerPoint 프레젠테이션

PowerPoint Presentation

public class FlowLayoutPractice extends JFrame { public FlowLayoutPractice() { super("flowlayout Practice"); this. Container contentpane = getcontentp

자바GUI실전프로그래밍2_장대원.PDF

10장.key

PowerPoint Presentation

Microsoft PowerPoint - Java-03.pptx

No Slide Title

PowerPoint Presentation

슬라이드 1

강의자료

제8장 자바 GUI 프로그래밍 II

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

PowerPoint Presentation

Microsoft PowerPoint - ÀÚ¹Ù08Àå-2.ppt

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - java1-lecture11.ppt [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - java2-lecture5.ppt [호환 모드]

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - java1-lecture11.ppt [호환 모드]

02 C h a p t e r Java

Cluster management software

Microsoft Word - java18-1-final-answer.doc

슬라이드 1

10-Java Applet

DB 에데이터저장을위한입력창설계 - JLabel, JTextField, JButton 을이용한입력창설계 - 2 -

PowerPoint 프레젠테이션

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자

PowerPoint Presentation

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

Chap12

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint 자바-AWT컴포넌트(Ch8).pptx

11-GUI.key

중간고사

Spring Data JPA Many To Many 양방향 관계 예제

PowerPoint Presentation

슬라이드 1

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - 06-Chapter09-Event.ppt

gnu-lee-oop-kor-lec06-3-chap7

rmi_박준용_final.PDF

오버라이딩 (Overriding)

PowerPoint Presentation

(Microsoft PowerPoint - LZVNQBAJWGTC.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint Presentation

10 이벤트 처리와 그래픽 프로그래밍.key

Design Issues

비긴쿡-자바 00앞부속

(Microsoft PowerPoint - java2-lecture6.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint Presentation

PowerPoint Presentation

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint 프레젠테이션

Microsoft PowerPoint - java2-lecture6.ppt [호환 모드]

5장.key

Cluster management software

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

09-interface.key

PowerPoint 프레젠테이션

8장.그래픽 프로그래밍

PowerPoint 프레젠테이션

Java ...

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밊

untitled

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

<4D F736F F F696E74202D205B4A415641C7C1B7CEB1D7B7A1B9D65D3130C0E5C0CCBAA5C6AEC3B3B8AE>

Microsoft Word - java19-1-final-answer.doc

제8장 자바 GUI 프로그래밍 II

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

12-file.key

Network Programming

Transcription:

객체지향프로그래밍 그래픽사용자인터페이스 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr

예제 1. 프레임생성 (1) import javax.swing.*; public class FrameTest { public static void main(string[] args) { JFrame f = new JFrame("Frame Test"); JFrame 의객체생성 f.setsize(300, 200); f.setdefaultcloseoperation(jframe.exit_on_close); f.setvisible(true); 2

예제 2. 프레임생성 (2) import javax.swing.*; public class MyFrame extends JFrame { Jframe 을상속하여 MyFrame 을정의 public MyFrame() { setsize(300, 200); setdefaultcloseoperation(jframe.exit_on_close); settitle("myframe"); setvisible(true); public class MyFrameTest { public static void main(string[] args) { MyFrame f = new MyFrame(); MyFrame 의객체생성 3

예제 3. 프레임생성 (3) Jframe 을상속하여서 MyFrame 을정의 import javax.swing.*; public class MyFrame extends JFrame { public MyFrame() { setsize(300, 200); setdefaultcloseoperation(jframe.exit_on_close); settitle("myframe"); setvisible(true); public static void main(string[] args) { MyFrame f = new MyFrame(); main() 이 MyFrame 안으로이동 4

예제 4. 컴포넌트생성과추가 import javax.swing.*; import java.awt.flowlayout; public class MyFrame extends JFrame { public MyFrame() { setsize(300, 200); setdefaultcloseoperation(jframe.exit_on_close); settitle("myframe"); 배치관리자설정! 컴포넌트생성및추가 setlayout(new FlowLayout()); JButton button = new JButton(" 버튼 "); this.add(button); setvisible(true); public class MyFrameTest { public static void main(string[] args) { MyFrame f = new MyFrame(); 5

예제 5. 온도변환기 이제까지학습한내용을바탕으로화씨온도를섭씨온도로변환해주는애 플리케이션을작성하여보자. 6

예제 5. 온도변환기 // 소스를입력하고 Ctrl+Shift+O를눌러서필요한파일을포함한다. public class Mylab { public static void main(string[] args) { JFrame f = new JFrame(); JPanel panel = new JPanel(); f.add(panel); JLabel label1 = new JLabel(" 화씨온도 "); JLabel label2 = new JLabel(" 섭씨온도 "); JTextField field1 = new JTextField(15); JTextField field2 = new JTextField(15); JButton button = new JButton(" 변환 "); 7

예제 5. 온도변환기 panel.add(label1); panel.add(field1); panel.add(label2); panel.add(field2); panel.add(button); f.setsize(300, 150); f.setdefaultcloseoperation(jframe.exit_on_close); f.settitle(" 온도변환기 "); f.setvisible(true); 8

예제 6. 피자주문화면제작 패널안에다른패널이포함될수있다. 이것을이용하여서다음그림처럼 프로그램의화면을디자인하라. 9

예제 6. 피자주문화면제작 10

예제 6. 피자주문화면제작 // 소스만입력하고 Ctrl+Shift+O 를누른다. public class MyFrame extends JFrame { public MyFrame() { setsize(600, 150); setdefaultcloseoperation(jframe.exit_on_close); settitle("myframe"); JPanel panel = new JPanel(); JPanel panela = new JPanel(); JPanel panelb = new JPanel(); JLabel label1 = new JLabel(" 자바피자에오신것을환영합니다. 피자의종류를선택하시오."); panela.add(label1); 11

예제 6. 피자주문화면제작 JButton button1 = new JButton(" 콤보피자 "); JButton button2 = new JButton(" 포테이토피자 "); JButton button3 = new JButton(" 불고기피자 "); panelb.add(button1); panelb.add(button2); panelb.add(button3); JLabel label2 = new JLabel(" 개수 "); JTextField field1 = new JTextField(10); panelb.add(label2); panelb.add(field1); panel.add(panela); panel.add(panelb); add(panel); setvisible(true); 12

예제 6. 피자주문화면제작 public class MyFrameTest { public static void main(string[] args) { MyFrame f = new MyFrame(); 13

예제 7. FlowLayout import java.awt.*; import javax.swing.*; class MyFrame extends JFrame { public MyFrame() { settitle("flowlayouttest"); setdefaultcloseoperation(jframe.exit_on_close); JPanel panel; // 패널을생성하고배치관리자를 FlowLayout 으로설정 panel = new JPanel(); panel.setlayout(new FlowLayout(FlowLayout.CENTER)); // 패널에버튼을생성하여추가 panel.add(new JButton("Button1")); panel.add(new JButton("Button2")); panel.add(new JButton("Button3")); panel.add(new JButton("B4")); panel.add(new JButton("Long Button5")); add(panel); pack(); setvisible(true); 14

예제 8. BorderLayout 예제 import java.awt.*; import javax.swing.*; class MyFrame extends JFrame { public MyFrame() { settitle("borderlayouttest"); setdefaultcloseoperation(jframe.exit_on_close); // 프레임은디폴트로 BorderLayout 이므로사실은불필요 setlayout(new BorderLayout()); // 버튼을추가한다. add(new JButton("Center"), BorderLayout.CENTER); add(new JButton("Line Start"), BorderLayout.LINE_START); add(new JButton("Line End"), BorderLayout.LINE_END); add(new JButton("Page Start"), BorderLayout.PAGE_START); add(new JButton("Page End"), BorderLayout.PAGE_END); pack(); setvisible(true); 15

예제 9. GridLayout import java.awt.*; import javax.swing.*; class MyFrame extends JFrame { public MyFrame() { settitle("gridlayouttest"); setdefaultcloseoperation(jframe.exit_on_close); setlayout(new GridLayout(0, 3));// 3 개의열과필요한만큼의행 add(new JButton("Button1")); add(new JButton("Button2")); add(new JButton("Button3")); add(new JButton("B4")); add(new JButton("Long Button5")); pack(); setvisible(true); 16

예제 9. 절대위치 import java.awt.*; import java.awt.event.*; import javax.swing.*; class MyFrame extends JFrame { JButton b1; private JButton b2, b3; public MyFrame() { settitle("absolute Position Test"); setdefaultcloseoperation(jframe.exit_on_close); setsize(300, 200); JPanel p = new JPanel(); p.setlayout(null); b1 = new JButton("Button #1"); p.add(b1); b2 = new JButton("Button #2"); p.add(b2); b3 = new JButton("Button #3"); p.add(b3); 17

예제 9. 절대위치 b1.setbounds(20, 5, 95, 30); b2.setbounds(55, 45, 105, 70); b3.setbounds(180, 15, 105, 90); add(p); setvisible(true); public class AbsoluteTest { public static void main(string args[]) { MyFrame f=new MyFrame(); 18

예제 10. 계산기 간단한계산기를작성하여보자. 계산기능은나중에추가하기로하자. 여기 서는다음과같은외관만구현하면된다.GridLayout 을사용하여보자. 19

예제 10. 계산기 // 소스만입력하고 Ctrl+Shift+O 를누른다. public class Calculator extends JFrame { private JPanel panel; private JTextField tfield; private JButton[] buttons; private String[] labels = { "Backspace", "", "", "CE", "C", "7", "8", "9", "/", "sqrt", "4", "5", "6", "x", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=", ; 20

예제 10. 계산기 public Calculator() { tfield = new JTextField(35); panel = new JPanel(); tfield.settext("0."); tfield.setenabled(false); panel.setlayout(new GridLayout(0, 5, 3, 3)); buttons = new JButton[25]; int index = 0; for (int rows = 0; rows < 5; rows++) { for (int cols = 0; cols < 5; cols++) { buttons[index] = new JButton(labels[index]); if( cols >= 3 ) buttons[index].setforeground(color.red); else buttons[index].setforeground(color.blue); buttons[index].setbackground(color.yellow); panel.add(buttons[index]); index++; 21

예제 10. 계산기 add(tfield, BorderLayout.NORTH); add(panel, BorderLayout.CENTER); setvisible(true); pack(); public static void main(string args[]) { Calculator s = new Calculator(); 22

예제 11. 불규칙한레이블 다음과같이난수를발생하여서레이블을불규칙하게배치하여보자. 23

예제 11. 불규칙한레이블 public class MyFrame extends JFrame { JPanel p = new JPanel(); JLabel[] labels = new JLabel[30]; public MyFrame() { p.setlayout(null); p.setbackground(color.yellow); for (int i = 0; i < 30; i++) { labels[i] = new JLabel("" + i); int x = (int) (500 * Math.random()); int y = (int) (200 * Math.random()); labels[i].setforeground(color.magenta); labels[i].setlocation(x, y); labels[i].setsize(20, 20); p.add(labels[i]); setsize(500, 300); add(p); setvisible(true); // 프레임을화면에표시한다. 24

예제 11. 불규칙한레이블 public class MyFrameTest { public static void main(string args[]) { MyFrame f = new MyFrame(); 25