- 계산기 GUI 구성하기 - 조원: 박강국 오정은 이귀식 김도윤 안영진.

Slides:



Advertisements
Similar presentations
6 장 객체 - 지향 설계 ③. 목차 GUI 레이아웃  전화기 키 패드 전화기 키 패드 전화기 키 패드 모양의 GUI 를 만드는 Telephone.java, TelephonePanel.java 를 완성해 보자.  주석을 참고하여 TelephonePanel.java.
Advertisements

Chap02 자바환경과 자바 프로그램 Section 1 : 자바 개발 환경 Section 2 : 자바 통합 환경 Section 3 : 자바 응용 프로그램과 애플릿 프로그램 Section 4 : 자바 응용 프로그램 Section 5 : 자바 애플릿 프로그램.
제 8 장 그래픽 사용자 인터페이스 어서와 Java 는 처음이지 !. 그래픽 사용자 인터페이스 (Graphical User Interface, 간단히 GUI) 는 컴포넌트들로 구성된다.
자바 5.0 프로그래밍.
명품 JAVA Essential.
Ch.22 Command Pattern 장 덕 성 계명대학교 컴퓨터공학과 정보공학실험실
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
9장. 스윙 프로그래밍.
GUI 이벤트, 이벤트 리스너와 이벤트 소스 그림 그리기 내부 클래스
제7장 이벤트 프로그래밍.
System.Windows.Forms 윈도우 폼 SD50 – C# & .NET Platform.
7장 배열 ②.
7장 배열 ③.
레이아웃 관리자 스윙 구성요소 비트박스 프로그램
명품 JAVA Programming 제 13 장 스레드와 멀티태스킹.
컴퓨터 프로그래밍 실습 #7 제 4 장 GUI 클래스 작성.
명품 JAVA Essential.
J2ME(Java 2 Micro Edition) 무선 장치용 UI의 핵심 컴포넌트
명품 JAVA Programming.
자바란 무엇인가? JDK의 다운로드 및 설치 방법 Hello, Java 프로그램의 작성 자바 프로그램의 작동 원리
Kim heesang JDBC Programming 2 Kim heesang
제 4 장 클래스 작성 Lab 4- 2.
DB와 WEB 연동(1) [2-Tier] Java Applet 이용
9장 AWT(1).
Lesson 12. 사용자 인터페이스(AWT) - 1
Lesson 11. 이벤트.
10장 객체-지향 프로그래밍 II ©창병모.
Power Java 제19장 배치 관리자(Layout Manager).
어서와 Java는 처음이지! 제8장 그래픽 사용자 인터페이스.
Choi Younghwan CSE HUFS
18장 사용자 인터페이스 18.1 AWT(Abstract Window Toolkit) 18.2 컴포넌트의 이벤트 처리
java.awt 패키지의 단순 컴포넌트와 이벤트 처리
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
Java로 배우는 디자인패턴 입문 Chapter 22. Command 명령을 클래스로 만든다
Swing 컴포넌트 텍스트 컴포넌트 텍스트 필드 텍스트 영역 스크롤 페인 체크 박스 라디오 버튼.
이벤트 프로그래밍 안혜선.
Java Seminar Chapter 4.
GUI Programming - Part 2 ( GUI for Python - wxPython )
5장 조건과 반복 ③.
프로그래머를 위한 Java 2 제4장 AWT 프로그래밍
명품 JAVA Essential.
Hadoop 김연왕
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
메모장 구동.
9장 AWT(1).
GUI 프로그래밍과 AWT 컴퓨터 공학실험(I) 인공지능 연구실.
명품 JAVA Programming 제 15 장 애플릿과 멀티미디어.
Lesson 10. 애플릿과 그래픽.
Visual Basic 기초 1 목표: 컴퓨터기반제어에 관련된 학습을 하기 전에 Visual Basic의 기초를 살펴본다.
상속과 인터페이스 클래스의 상속에 대하여 인터페이스에 대하여.
Javafx UI.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
JAVA WINDOW PROGRAMMING
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
JA A V W. 04.
Mariadb JDBC PROGRAMMING2
제8장 쓰레드 프로그래밍.
제 4 장 클래스 작성 Lab 4- 2.
Outline 클래스의 해부 캡슐화(Encapsulation) 메쏘드의 해부 그래픽 객체(Graphical Objects)
GUI 프로그래밍과 AWT 컴퓨터 공학실험(I) 인공지능 연구실.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
담당 : 황기태 교수님 학번 : ㈜ 이름 : 조성대 제출 :
자바 프로그래밍 Thread를 이용한 애니메이션 서울호서전문학교 게임프로그램개발과.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Chapter2 : 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합개발환경(IDE)
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
Presentation transcript:

- 계산기 GUI 구성하기 - 조원: 박강국 오정은 이귀식 김도윤 안영진

- 차례 - 1. 서론 1.1 용어설명 1.2 사용한 컴포넌트 2. 본론 2.1 설계구조 2.2 소스보기 3. 결론 3.1 결과화면

- 서론 – 1.1 용어설명 GUI (Graphics User Interface) -> 메뉴나 단추를 마우스로 눌러 명령을 내리는데, 이를 그래픽 사용자 인터페이스라 함. AWT (Abstract Windows Toolkit) -> GUI를 구축하기 위한 클래스들의 묶음 컴포넌트(component) -> GUI에서 사용되는 각종 객체들을 의미 컨테이너(Container) -> 컴포넌트를 관리하거나 포함하는 클래스 레이아웃(화면구성)의 속성을 가짐

구조도

1.2 사용한 컴포넌트 Component (implements MenuContainer)   +-- Container  |     +-- Window   |     |     +-- Dialog   |     |     |     +-- FileDialog   |     |     +-- Frame (implements MenuContainer)   |     +-- Panel   |     +-- ScrollPane  +-- Canvas   +-- Button   +-- CheckBox (implements ItemSelectable)   +-- List (implements ItemSelectable)   +-- Choice (implements ItemSelectable)   +-- Label  +-- ScrollBar (implements Adjustable)   +-- TextComponent          +-- TextField          +-- TextArea  MenuComponent  +-- MenuItem   |      +-- Menu (implements MenuContainer)   |      |      +-- PopupMenu  |      +-- CheckboxMenuItem (implements ItemSelectable)   +-- MenuBar (implements MenuContainer) 

- 설계 구조 - MenuBar Panel Panel Frame

- 본론 – 2.2 소스보기 MyCounter.java import java.applet.*; import java.awt.*; import java.awt.event.* ; //★단축키, 프레임 창닫기를 위한 패키지 public class MyCounter extends Frame { public static void main(String[] args) WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }; //★프레임 창닫기 이벤트 Frame f = new Frame("계산기"); // 프레임 생성 f.addWindowListener(l); //★프레임 창닫기 리스너 // 가운데 정렬, 수평, 수직 간격 f.setLayout(new FlowLayout(FlowLayout.CENTER, 1, 1));

MyCounter.java 메뉴바 추가 MenuBar mb = new MenuBar(); //메뉴바생성 Menu editMenu = new Menu("편집(E)"); //메뉴생성 MenuItem e1 = new MenuItem("복사(C)", new MenuShortcut(KeyEvent.VK_C)); //메뉴아이템생성, 단축키사용 MenuItem e2 = new MenuItem("붙여넣기(P)", new MenuShortcut(KeyEvent.VK_V)); editMenu.add(e1); //메뉴아이템을 메뉴에 추가 editMenu.add(e2); Menu viewMenu = new Menu("보기(V)"); MenuItem v1 = new MenuItem("일반용(T)", new MenuShortcut(KeyEvent.VK_T)); MenuItem v2 = new MenuItem("공학용(S)", new MenuShortcut(KeyEvent.VK_S)); MenuItem v3 = new MenuItem("자리수 구분 단위(I)", new MenuShortcut(KeyEvent.VK_I)); viewMenu.add(v1); viewMenu.add(v2); viewMenu.addSeparator(); //메뉴아이템 사이에 구분선을 추가 viewMenu.add(v3);

MyCounter.java 메뉴바 추가 Menu helpMenu = new Menu("도움말(H)"); MenuItem h1 = new MenuItem("도움말 항목(H)", new MenuShortcut(KeyEvent.VK_H)); MenuItem h2 = new MenuItem("계산기 정보(A)", new MenuShortcut(KeyEvent.VK_A)); helpMenu.add(h1); helpMenu.add(h2); //메뉴를 메뉴바에 추가 mb.add(editMenu); mb.add(viewMenu); mb.add(helpMenu); //메뉴바를 Frame에 추가 f.setMenuBar(mb);

MyCounter.java 텍스트필드 추가 Panel textField = new Panel(); TextField TF = new TextField("0.", 33); // 문자열, 칸수 초기화 TF.setSize(250, 33); textField.add(TF); f.add(textField); BorderLayout.NORTH 로 상단에 추가 Panel northButton = new Panel(); TextField BT = new TextField("",1); BT.setSize(3, 32); BT.setBackground(Color.lightGray); // 텍스트필드 배경색 설정 northButton.add(BT); // 텍스트필드를 northButton 판넬에 추가 northButton.setForeground(Color.red); // 글자색 설정 northButton.add(new Button("Backspace")); northButton.add(new Button(" CE ")); northButton.add(new Button(" C ")); // northButton 판넬을 프레임에 추가 f.add(northButton, BorderLayout.NORTH);

MyCounter.java BorderLayout.WEST로 왼쪽에 추가 String westChar[] = { " MC ", " MR ", " MS ", " M+ " }; Panel westButton = new Panel(); westButton.setBounds(10,109,50,116); // x, y, width, height westButton.setLayout(new GridLayout(4,1,0,4)); //행,열,가로,세로간격 Button westB[] = new Button[westChar.length]; for (int i = 0; i < westChar.length; i++) { westB[i] = new Button(westChar[i]); westB[i].setForeground(Color.red); westButton.add(westB[i]); //버튼을 westButton판넬에 추가 } //westButton판넬을 프레임에 추가 f.add(westButton, BorderLayout.WEST);

MyCounter.java BorderLayout.CENTER로 중앙에 추가 String centerChar[] = { "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" }; Panel centerPanel = new Panel(); //숫자및 연산 버튼 centerPanel.setBounds(70,109,250,116); // x, y, width, height centerPanel.setLayout(new GridLayout(4,5,4,4)); Button centerButton[] = new Button[centerChar.length]; for (int i = 0; i < centerChar.length; i++) { centerButton[i] = new Button(centerChar[i]); centerButton[i].setForeground(Color.blue); centerPanel.add(centerButton[i]); //버튼을 centerButton판넬에 추가 } //centerButton판넬을 프레임에 추가 f.add(centerPanel, BorderLayout.CENTER); f.setSize(280, 230); // Frame 사이즈 f.setBackground(Color.lightGray); // Frame 배경색 f.setVisible(true); // Frame 나타나게 함

- 결론 – 3.1 결과화면