1 / 22

JAVA Presentation Swing

JAVA Presentation Swing. desitny738.tistory.com. 목 차. Swing 이란 ? Swing Component / Container JFrame / Content Pane / Program EXIT [ 실습 1,2,3] : 간단한 Swing Program 작성 Relative Layout / Flow Layout / Border Layout / Grid Layout [ 실습 4 ] : Flow Layout Absolute Layout

conley
Download Presentation

JAVA Presentation Swing

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. JAVA PresentationSwing desitny738.tistory.com

  2. 목 차 • Swing 이란? • Swing Component / Container • JFrame / Content Pane / Program EXIT • [실습1,2,3] : 간단한 Swing Program 작성 • Relative Layout / Flow Layout / Border Layout / Grid Layout • [실습4] : Flow Layout • Absolute Layout • [실습5] : Absolute Layout • Practice • [실습6] : 회원 가입 Form 생성

  3. Swing 이란? What is Swing(in Java Applications)? • Java에서 지원해주는 GUI 패키지 • javax.swing패키지를 통해서 제공해준다. • AWT컴포넌트와 다르게 운영체제와 관계없이 항상 동일하게 GUI를 표현/작동 • AWT컴포넌트와의 구분을 위해서 J(대문자)를 앞에 붙여 주었다. • JButton, JFrame, ... ETC all.

  4. Swing Component / Container Component Container 다른 컴포넌트를 포함할 수 있다. example JFrame JPanel • 다른 컴포넌트를 포함할 수 없다. • 임의의 컨테이너에 포함되어야 한다. • example • JMenubar • JButton • JTextField • ... Etc Component JButtonJTextField ... Container JFrame JPanel

  5. JFrame / Content Pane / Program EXIT JFrame • 모든 스윙 컴포넌트의 최상위 컨테이너 • Frame이 생성되어야 GUI가 출력 • Frame이 닫히면 모든 컴포넌트가 사라짐 • Frame/MenuBar/ContentPane으로 구성 • MenuBar : 메뉴를 부착할 수 있는 Bar • ContentPane : 메뉴를 제외한 모든 GUI 공간 • Frame 관련 메소드 • setTitle(String) : Frame의 Title을 지정할 수 있다. • setSize(intw,int h) : 프레임의 크기를 w*h로 지정한다. • setVisible(boolean) : Frame을 화면에 보이게 해준다.(default : false)

  6. JFrame / Content Pane / Program EXIT Frame 생성 1 : 직접 생성 Frame 생성 2 : 상속 import javax.swing.*;public class MakeFrame extends JFrame{MakeFrame(){setSize(300,150);setTitle("First Frame");setVisible(true); } public static void main(String[] args){MakeFramemf = new MakeFrame(); }} import javax.swing.*;public class MakeFrame{ public static void main(String[] args){JFramef = new JFrame();f.setSize(300,150);f.setTitle("First Frame");f.setVisible(true); }} 장점 : 단순하다. 단점 : 확장성이 떨어진다. 장점 : MakeFrame클래스에 메소드 추가가능 이로 인해, 확장성, 융통성이 높아진다.

  7. JFrame / Content Pane / Program EXIT 실습 1 : 기본적인 Frame 생성 • 크기가 500 * 300인 MainFrame클래스를 생성하라. • Frame의 Title은 “First Frame”으로 하여라 • main 함수를 생성하여, MainFrame객체를 생성해 보아라. 500 300

  8. JFrame / Content Pane / Program EXIT Content Pane • Container(JFrame)이 생성 되었으니, Component(ex.Button)를 부착할 수 있다. • 컴포넌트는 Content Pane에만 부착이 가능하다. • JFrame이 생성될 때 이에 대한 Content Pane은 자동으로 생성 • 즉, JFrame의 Content Pane이 무엇 인지만 알면, 컴포넌트를 붙일 수 있게 된다. • Container [NAME] = [FRAME_NAME].getContentPane(); • 위 메소드를 이용해서 현재 Content Pane을 알아 낼 수 있다. • [NAME].add([COMPONENT])로 컴포넌트를 추가할 수 있게 된다.

  9. JFrame / Content Pane / Program EXIT 실습 2 : 실습1에 Button을 하나 생성하여 달아보자. • getContentPane() 메소드를 이용하여, 현재 Content Pane을 알아내자. • add() 메소드를 이용하여, 버튼을 10개를 생성해보자. (add(new JButton(“name”)); • 버튼의 이름은 Test1~10로 한다. • 버튼 생성 메소드: JButtonbtn = new JButton(“버튼 이름”);

  10. JFrame / Content Pane / Program EXIT Program EXIT • System.exit(0);를 적정위치에 넣는다. • 프레임 윈도우의 X버튼의 클릭과 함께 종료 시킨다. • 그냥 생성된, X버튼은 X버튼을 눌러도 Process가 종료되지 않는다. • [FrameName].setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 를 추가한다. • 실습 3 : X버튼을 눌러서 Process가 종료되게 만들어보자. • setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);를 추가한다.

  11. Layout 배치관리자 • 현재 프로그램은 아무런 배치가 이루어져 있지 않는다. • 이에 따라, 컴포넌트들의 위치와 크기를 결정해주는 배치 관리자가 존재한다. • 배치관리자 • 컨테이너에 부착되는 컴포넌트들의 위치와 크기를 결정 • 컨테이너에 속한 것으로 컨테이너마다 하나씩 존재 • 컴포넌트가 컨테이너로 들어오는 순간 위치와 크기를 결정 • 컨테이너 크기가 변경되면 자동으로 컴포넌트의 크기도 조절해준다. • FlowLayout, BorderLayout, GridLayout, CardLayout이 존재한다. • setLayout(new Layout_name())을 이용하여 생성한다.

  12. Layout FlowLayout • 컨포넌트를 좌에서 우 / 위에서 아래로 배치를 해준다. • Frame 크기의 변경에 따라 자동으로 배치 / 위치가 바뀌게 된다. • 생성자 • FlowLayout() 기본 생성자 • FlowLayout(align) 정렬 기준을 정해준다. • FlowLayout.CENTER (default) 중앙 정렬 • FlowLayout.LEFT왼쪽 정렬 • FlowLayout.RIGHT오른쪽 정렬 • FlowLayout(align,inthGap,intVgap) • hGap : 컴포넌트 간의 수평 간격 설정 • vGap : 컴포넌트 간의 수직 간격 설정

  13. Layout 실습 4: FlowLayout • 실습3에 각각의 생성자를 이용하여 FlowLayout을 실험해보자. newFlowLayout() newFlowLayout(FlowLayout.RIGHT) newFlowLayout(FlowLayout.LEFT,20,10)

  14. Layout BorderLayout • Border : 가장자리, 끝, 인근 • 동, 서, 남, 북, 중앙 5개의 영역으로 분할하여 배치 • 5개의 영역이 존재하므로 기본적으로 5개의 컴포넌트만 붙일 수 있다. • 생성자 • BorderLayout() : 기본 생성자 • BorderLayout(inthGap, intvGap) : flow layout가 같음 • add()시 BorderLayout의 어디에 넣을지 잡아야 한다. • ex) [COTAINER].add(new JButton(“Test”),BorderLayout.EAST);

  15. Layout BorderLayout

  16. Layout GridLayout • Grid : 격자 • 컨테이너 공간을 지정한 개수의 사각형의 격자 모양으로 분할 • 좌에서 우로 위에서 아래로 컴포넌트를 배치하는 관리자. • 생성자 • GridLayout() : 1칸짜리 레이아웃 • GridLayout(int w, int h) : w행 h열 그리드를 생성해준다

  17. Layout GridLayout

  18. Layout Absolute layout • 배치관리자를 지운다. • 배치관리자는 상대적인 위치를 지정하는데, 직접적으로 위치를 지정하고자 할 때배치관리자를 지운다. • container.setLayout(null); • 배치관리자가 없어지면 추가적으로 컴포넌트 메소드를 이용해야 한다. • 컴포넌트를 객체화 하여 다음과 같은 수치를 정해줘야 한다. • void setSize(intw,int h); w*h짜리 크기를 가진 컴포넌트 생성 • void setLocation(intx,int y); 모서리를 x, y위치에 컴포넌트를 위치한다. • void setBounds(int x, int y, int w, int h); setSize + setLocation • ex) JButton btn1 = new JButton(“test1”); btn1.setSize(30,10); setLocation(10,10);cp.add(btn1);

  19. Layout 실습 5 : 배치관리자를 지워보자 • 300 * 400 짜리 Frame을 하나 생성하자 • Frame의 Title : Absolute layout • Frame의 배치 관리자를 지운다. • Frame에 버튼 2개 객체로 생성한다. • 버튼 1 버튼 2 • 이름 : Test 1 - 이름 : Test 2 • 위치 : x: 20, y: 20 - 위치 : x: 100, y: 100 • 크기 : 80 * 50 - 크기 : 90 * 70 • 버튼 2개를 프레임에 부착하고, 메인 메소드를 이용하여 실행하여 보라

  20. Layout JPanel • 일반적으로 Absolute Layout은 사용하지 않는다. • Frame 크기에 따라 자동으로 변화하지 않기 때문에 • 여러 가지 배치관리자를 사용하기 위해서는 Panel을 이용하여 여러 개의 컨테이너를 생성하여 이를 조정한다.

  21. Practice 다양한 컨테이너를 사용하여 회원 가입 Form을 만들어 보자

  22. Thank youJAVA PresentationSwing desitny738.tistory.com

More Related