1 / 25

컨테이너

컨테이너. 컴퓨터정보과 안유정 교수 연구동 410 호 yjahn@mjc.ac.kr. 컨테이너. 컨테이너란 ? 다른 컴포넌트들을 포함할 수 있는 컴포넌트 . 컨테이너 자신만으로는 특별한 동작을 할 수 없고 다른 컴포넌트를 포함할 때만 의미를 갖는다 . 컨테이너 안에 서브 컨테이너들을 가질 수 있다 . 컨테이너 내에 배치될 컴포넌트들의 위치와 크기를 결정하는 레이아웃을 지정할 수 있다. 일반적으로 서브 컨테이너로 Panel 클래스가 많이 사용된다. 컨테이너. 컨테이너의 하위클래스들 (3 개 ).

roth-roth
Download Presentation

컨테이너

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 컨테이너 컴퓨터정보과 안유정 교수 연구동 410호 yjahn@mjc.ac.kr

  2. 컨테이너 • 컨테이너란 ? 다른 컴포넌트들을 포함할 수 있는 컴포넌트. • 컨테이너 자신만으로는 특별한 동작을 할 수 없고 다른 컴포넌트를 포함할 때만 의미를 갖는다. • 컨테이너 안에 서브 컨테이너들을 가질 수 있다. • 컨테이너 내에 배치될 컴포넌트들의 위치와 크기를 결정하는 레이아웃을 지정할 수 있다. • 일반적으로 서브 컨테이너로 Panel 클래스가 많이 사용된다.

  3. 컨테이너 • 컨테이너의 하위클래스들 (3개) Container Container Container Panel Panel Panel Window Window Window ScrollPane ScrollPane ScrollPane Applet Frame Frame Frame Frame Frame Dialog Dialog Dialog ileDialog F Frame Frame

  4. Panel 클래스 • Panel 클래스 • Container 클래스로부터 상속된 클래스로서 컴포넌트들을 담는 그릇역할을 하는 클래스 • 애플릿에 여러 개의 Panel 객체를 생성하고, • 각각의 Panel 객체에 배치관리자를 설정하여 컴포넌트들을 • 배치할 수 있다. • 생성자- Panel() • Panel p = new Panel();

  5. 해보기 패널 pt pt1 pt2 pt3 pb1 pb2 패널 pb

  6. 예제 PanelDemo.java ---------------------------------- import java.applet.*; import java.awt.*; public class PanelDemo extends Applet { public void init() { Panel pt, pb; // 애플릿의 서브 패널로 pt, pb 선언 Panel pt1, pt2, pt3; // pt 판넬의 서브 패널로 pt1, pt2, pt3 선언 Panel pb1, pb2; // pb 판넬의 서브 패널로 pb1, pb2 선언 pt = new Panel(); pt.setLayout(new GridLayout(1,3)); // pt에 배치관리자 설정 pt.setBackground(new Color(170,170,170)); add(pt); // 애플릿에 pt Panel 추가

  7. 예제 PanelDemo.java 계속 pt1 = new Panel(); // pt1 패널 생성 pt1.setLayout(new GridLayout(3,1)); pt1.setBackground(new Color(221,221,221)); CheckboxGroup rgb = new CheckboxGroup(); // 라디오버튼 Checkbox red = new Checkbox("Red", rgb, true); Checkbox green = new Checkbox("Green", rgb, false); Checkbox blue = new Checkbox("Blue", rgb, false); pt1.add(red); // 라디오버튼 객체들을 pt1 패널에 출력 pt1.add(green); pt1.add(blue); pt.add(pt1); // pt에 서브 패널인 pt1 추가

  8. 예제 PanelDemo.java 계속 pt2 = new Panel(); // pt2 패널 생성 pt2.setLayout(new GridLayout(3,1)); pt2.setBackground(new Color(187,187,187)); Checkbox city1 = new Checkbox("서울"); Checkbox city2 = new Checkbox("대구"); Checkbox city3 = new Checkbox("부산"); pt2.add(city1); // 체크박스 객체들을 pt2 패널에 출력 pt2.add(city2); pt2.add(city3); pt.add(pt2); // pt에 서브 패널인 pt2 추가

  9. 예제 PanelDemo.java 계속 pt3 = new Panel(); pt3.setLayout(new FlowLayout()); pt3.setBackground(new Color(153,153,153)); Button bt1 = new Button(" 선 택 "); Button bt2 = new Button(" 취 소 "); pt3.add(bt1); pt3.add(bt2); pt.add(pt3);

  10. 예제 PanelDemo.java 계속 pb = new Panel(); pb.setBackground(new Color(221,221,221)); add(pb); pb1 = new Panel(); TextArea ta = new TextArea("자료입력공간",10,29); pb1.add(ta); // TextArea 객체 ta를 pb1에 추가 pb.add(pb1); pb2 = new Panel(); Choice ca = new Choice(); ca.addItem("1구간 지역"); ca.addItem("2구간 지역"); ca.addItem("3구간 지역"); ca.addItem("4구간 지역"); ca.addItem("5구간 지역"); pb2.add(ca); // Choice 객체 ca를 pb2에 추가 pb.add(pb2); } }

  11. 예제 PanelDemo.html <html> <head><title>PanelDemo</title></head> <body> <applet code="PanelDemo" width=400 height=300> </applet> </body> </html>

  12. Window 클래스 • Window 클래스 • 타이틀이나 메뉴가 없는 단순한 윈도우를 제공하는 클래스 • Window의 하위 클래스 – Frame, Dialog, FileDialog • 메소드 • void show() 생성된 윈도우 객체를 나타낸다 • void dispose() 윈도우 객체를 제거한다 • void pack() 윈도우를 초기 크기로 설정한다

  13. Frame 클래스 • Frame 클래스 • Window 클래스의 하위 클래스. • Frame 클래스의 객체는 타이틀이나 메뉴등을 사용할 수 있다. • 일반적으로 윈도우를 생성하기 위해 Window를 사용하지 않고 • Frame을 사용 • 생성자 • Frame() • Frame(String title) // title : 윈도우의 타이틀 바에 나타낼 문자열

  14. Frame 클래스 • 메소드 • String getTitle()현재 윈도우의 타이틀을 문자열로 반환 • void setTitle(String str)현재 윈도우의 타이틀을 str로 설정 • MenuBargetMenuBar()현재 윈도우의 메뉴바를 MenuBar객체로 반환 • void setmenuBar(MenuBarmb) • 현재의 윈도우에 mb로 지정된 메뉴바 설정 • 관련 이벤트 : window 이벤트 발생

  15. Dialog와 FileDialog 클래스 • 다이어로그 윈도우 • 사용자에게 간단한 정보를 알리거나 받아들이기 위해 사용 • modal 다이어로그 윈도우: 사용자에 의해 윈도우가 처리(OK 버튼을 누르는 등)되어야만 응용 프로그램이 계속 진행된다. • modeless : 다이어로그 윈도우가 사용자에 의해 처리되지 않아도 응용 프로그램이 계속 진행될 수 있다.

  16. Dialog와 FileDialog 클래스 • Dialog 클래스 • 생성자 • Dialog(Frame parent) • Dialog(Frame parent, boolean flag) • Dialog(Frame parent, String title) • Dialog(Frame parent, String title, boolean flag) • parent :다이어로그 윈도우를 제어하는 Frame 타입의 • 부모 윈도우. • title :다이어로그 윈도우에 나타낼 타이틀. • flag: true이면 modal 다이어로그 윈도우를 의미. • false이면 modeless 다이어로그 윈도우를 의미.

  17. Dialog와 FileDialog 클래스 • FileDialog 클래스 • 생성자 • FileDialog(Frame parent) • FileDialog(Frame parent, String title) • Dialog(Frame parent, String title, int mode) • parent :다이어로그 윈도우를 제어하는 Frame 타입의 • 부모 윈도우. • title :다이어로그 윈도우에 나타낼 타이틀. • mode: FileDialog.LOAD이면 읽기. • FileDialog.SAVE이면 저장.

  18. 해보기

  19. 예제 DialogDemo.java import java.applet.*; import java.awt.*; import java.awt.event.*; public class DialogDemo extends Applet implements ActionListener { public void init() { Button b = new Button("프레임 생성 버튼"); b.addActionListener(this); // 버튼에 리스너 등록 add(b); } public void actionPerformed(ActionEvent ae) { MyFrame my = new MyFrame("프레임 "); // 버튼이 눌려지면 프레임 생성 my.setSize(135, 135); // 프레임의 크기 조정 my.show(); // 프레임을 나타낸다 } }

  20. 예제 DialogDemo.java 계속 class MyFrame extends Frame implements ActionListener { MyFrame(String title) { super(title); // 프레임 창의 제목 Button la = new Button("Dialog 박스생성"); // 프레임에 버튼 생성 la.addActionListener(this); // 버튼에 리스너 등록 add(la); } public void actionPerformed(ActionEvent ae) { String message = "다이어로그 박스에 나타낼 메시지"; MessageDialog md =new MessageDialog(this, "Message Dialog",true, message); // 다이어로그 박스 생성 md.show(); // 다이어로그 박스를 나타냄 } }

  21. 예제 DialogDemo.java 계속 class MessageDialog extends Dialog implements ActionListener { // 다이어로그를 나타내는 클래스 Button ok; MessageDialog(Frame parent, String title, boolean mode, String message) { // 생성자 메소드를 이용하여 다이어로그 박스 구성 super(parent, title, mode); Panel pc = new Panel(); Label label = new Label(message); pc.add(label); add(pc, "Center"); // Panel을 생성하여 레이블을 추가 Panel ps = new Panel(); ok = new Button("OK"); ok.addActionListener(this); ps.add(ok); add(ps, "South"); // Panel을 생성하여 버튼을 추가 pack(); // 컴포넌트를 배치하고 다이어로그 박스의 초기 크기를 설정 }

  22. 예제 DialogDemo.java 계속 public void actionPerformed(ActionEvent ae) { dispose(); } }

  23. 해보기

  24. 예제 FileDialogDemo.java import java.applet.*; import java.awt.*; import java.awt.event.*; public class FileDialogDemo extends Applet implements ActionListener { public void init() { Button b = new Button("프레임 생성 버튼"); b.addActionListener(this); // 버튼에 리스너 등록 add(b); } public void actionPerformed(ActionEvent ae) { MyFrame my = new MyFrame("프레임 "); // 버튼이 눌려지면 프레임생성 my.setSize(135, 135); // 프레임의 크기 조정 my.show(); // 프레임을 나타낸다 } }

  25. 예제 FileDialogDemo.java class MyFrame extends Frame implements ActionListener { MyFrame(String title) { super(title); Button la = new Button("파일 Dialog 박스생성"); // 프레임에 버튼 생성 la.addActionListener(this); // 버튼에 리스너 등록 add(la); } public void actionPerformed(ActionEvent ae) { FileDialog fd = new FileDialog(this, "파일 다이어로그“, FileDialog.LOAD ); fd.setVisible(true); // 파일 다이어로그를 생성하고 화면에 나타낸다. } }

More Related