Presentation is loading. Please wait.

Presentation is loading. Please wait.

목 차 1. swing component 특징 및 관련 packages

Similar presentations


Presentation on theme: "목 차 1. swing component 특징 및 관련 packages"— Presentation transcript:

1 목 차 1. swing component 특징 및 관련 packages
2. Jframe 클래스 만들기 & ImageIcon, Icon 클래스 3. Jcomponent 클래스 & SwingConstants 4.AbstractButton,JButton,JToggleButton,JCheckbox,JRadioButton, ButtonGroup 5. Javax.swing.border 6.JMenuBar, JMenuItem, JCheckboxMenuItem, JMenu, JRadioButtonMenuItem 7. Box, BoxLayout 8. JDialog 9. JColorChooser, JFileChooser 10.JPanel, JScrollPane 11. JComboBox 12. JInternalFrame 13.JLabel, JList 14.JOptionPane 15.JPopupMenu 16.JTabbedPane 17.JTextComponent, JTextArea, JTextField, JPasswordField 18.JToolBar 19.AWTKeyStroke, KeyStroke

2 1. swing component 특징 및 관련 packages
A. Swing component 1.2ver 이후 부터 사용되는 awt 대용 Component Platform에 독립적인 Component 순수 자바 경량 Component Frame과 Container의 구분 스윙의 컴포넌트는 대부분 Jcomponent클래스로 부터 상속을 받는다. B. 관련 Package Javax.swing Javax.swing.border Javax.swing.event Javax.swing.table Javax.swing.tree

3

4 2. 스윙컨테이너 스윙 컴포넌트들을 화면에 나타내기 위해서는 컨테이너가 필요하다.대부분 컴포넌트는 add()를 이용하여 컨테이너에 추가할 수 있지만 스윙의 최상위 컨테이너인 JFrame,JDialog,JWindow,JApplet,JInternalFrame의 경우에는 add()메서드로 컴포넌트를 컨테이너에 직접 추가하면 안된다. 이들 컨테이너는 다른 컴포넌트를 포함하는 최상위 컨테이너이므로 다른 컨테이너와는 다른 구조를 갖는다. 컴포넌트의 추가나 배치는 최상위 컨테이너에 직접하지 않고 컨텐트페인이라는 대리 컨테이너를 구해서 작업을 해주어야 한다. 이 컨텐트페인은 실제 컨테이너가 담당해야 할 컴포넌트의 추가 배치를 처리해준다. 페인의 종류는 glassPane이나 layeredPane과 같은 여러 페인 구조가 존재한다.

5 코드 //컨텐트 페인을 구한다. Container c = getContentPane(); //컴포넌트 만들기
JButton jl = new JButton("Test"); //컨텐트 페인에 컴포넌트 추가하기 c.add(jl);

6 3. 레이아웃 메니저(배치관리자) 자바에서는 컴포넌트를 컨테이너에 추가해서 표현한다. 컨테이너에 부착할 때 어떤 모양으로 추가할 것인지 복잡한 형태는 어떻게 표시할 것인지 이러한 문제를 생각해야 한다. 복잡한 형태는 중간 컨테이너인 JPanel을 이용하여 해결하고 어떤 모양으로 만들지는 레이아웃 메니저를 이용하여 처리한다. 레이아웃 메니저에는 FlowLayout, BorderLayout, GridLayout, CardLayout,GridBagLayout,BoxLayout등이 있다. 레이아웃을 컨테이너에 적용시킬 때는 setLayout()메서드를 이용하여 적용한다.

7 최상위 컨테이너(JFrame) 대리 컨테이너(getContentPane()) 배치관리자(setLayout()) 복잡한 내용일 경우 JPanel이용하여 중간 컨테이너 작성 컴포넌트 추가(add())

8 보더 레이아웃(BorderLayout)
플로우 레이아웃(FlowLayout) 컴포넌트를 차례로 왼쪽에서 오른쪽으로 추가시킨다. 기본적으로 컨테이너가 중앙정렬된다. JPanel은 기본 레이아웃 메니저가 FlowLayout이다. 사용방법 FlowLayout flow = new FlowLayout() 또는 레퍼런스 없이 new FlowLayout 보더 레이아웃(BorderLayout) 컨테이너에 컴포넌트를 부착시킬 위치가 이미 정해져 있는 것으로 East,West,South,North,Center부분에만 부착될 수 있다. JFrame과 JApplet은 기본 레이아웃이 BorderLayout이다. BorderLayout b = new BorderLayout () 또는 레퍼런스 없이 new BorderLayout () 그리드 레이아웃(GridLayout) 행과 열의 형태로 컴포넌트를 배치시킬 수 있다. GridLayOut grid = new GridLayout(2,2) 또는 레퍼런스 없이 new BorderLay(2,2)

9 4. 컴포넌트 ToggleButton 버튼을 그룹으로 묶어 표현한다. 한 그룹에 속할 수 있도록 논리적으로 그룹화를 해야 합니다. 각각의 버튼을 컨테이너에 add시킨다. ButtonGroup bg = new ButtonGroup() JToggleButton tb = new JToggleButton("1", true); JToggleButton tb1 = new JToggleButton("2", false); bg.add(tb); bg.add(tb1); con.add(tb); con.add(tb1);

10 JCheckBox와 JRadioButton
JCheckBox와 JRadioButton은 선택할 수 있는 항목을 나타내주는 컴포넌트로 JCheckBox는 여러 개를 선택할 수 있고 JRadioButton은 한 개만 선택할 수 있습니다. 단, JRadioButton은 ToggleButton과 마찬가지로 ButtonGroup를 이용하여 논리적으로 그룹화를 하여야 합니다. JComboBox 콤보 박스를 생성하는 컴포넌트로 기본적으로 선택한 아이템만 보여줄 수 있습니다. JList 리스트 박스를 생성하는 컴포넌트로 기본적으로 생성시 화면에 표시하고 싶은 리스트의 수를 지정해서 생성할 수 없다. 단, setVisibleRowCount(10)를 이용해서 표시할 수 있다.

11 5. 컴포넌트II 메뉴사용하기(JMenuBar,Jmenu,JMenuItem)
JMenuBar는 메뉴가 붙어있는 클래스를 의미하고 Jmenu를 붙이기 위해 사용한다. Jmenu는 메뉴들을 표현하기 위해 사용하는 클래스이며 JMenuItem들을 붙이기 위해 사용한다. 실질적으로 사용자가 클릭해서 사용하는 메뉴는 JMenuItem이다. 메뉴생성 단계 1단계 생성할 JMenu를 붙일 JMenuBar를 생성한다. JMenuBar bar = new JMenuBar(); 2단계 setMenuBar()를 사용해서 컨테이너에서 메뉴바를 사용할 수 있도록 붙여준다. setMenuBar(bar); 3단계 비슷한 메뉴들을 관리할 JMenu를 생성한다. JMenu file = new JMenu(“파일”); 4단계 JMenuItem을 이용하여 메뉴 항목을 생성한다. JMenuItem newItem = new JMenuItem(“새파일”);

12 인터널 프레임(JInternalFrame)
GUI프로그램에서는 윈도우 안에 별도의 자식 윈도우를 갖는 MDI를 제공한다. 스윙에서도 JInternalFrame클래스로 이러한 기능을 제공합니다. 단, 일반적인 프레임이 갖는 특징을 인터널 프레임도 갖도록 만들기 위해 반드시 JDesktopPane 클래스를 생성해서 JInternalFrame 을 추가해야한다. 생성 방법 JDesktopPane 클래스의 객체를 생성한다. JDesktopPane desktop = new JDesktopPane(); JInternalFrame 클래스의 객체를 생성한다. JInternalFrame inframe = new JInternalFrame(); JDesktopPane클래스의 객체에 JInternalFrame을 추가시킨다. desktop.add(inframe)

13 6. 이벤트 이벤트의 개요 버튼을 누르거나 키를 입력하거나 마우스를 클릭하는 것 등이 이벤트이다. 이벤트가 발생하면 발생된 이벤트에 반응하여 어떤 것을 처리하는데 이러한 것을 이벤트 드리븐 프로그래밍이라고 한다. 또한 이벤트가 발생하는 경우에 수행되는 작업에 대한 내용이 포함되어 있는 클래스를 이벤트 리스너 혹은 이벤트 핸들러라고 한다. 버튼을 클릭할때 발생하는 이벤트는 ActionEvent이고 이 이벤트에 대한 이벤트 리스너를 제대로 사용하려면 이벤트를 발생시키는 컴포넌트에 add이벤트리스너()라는 메서드를 이용하여 연결시키는 작업을 해야 한다. 이벤트를 처리하는 이벤트 리스너는 거의 대부분 인터페이스로 이루어져 있으며 이벤트를 처리하기 위해서는 해당 이벤트리스너 인터페이스를 클래스에 구현해야 한다. 이벤트리스너를 구현할 경우 인터페이스 이므로 모든 메서드를 오버라이딩해야 한다.

14 이벤트종류 ActionEvent ItemEvent ListSelectionEvent 이벤트명 해당 컴포넌트
JButton, JTextField,JCheckBox,JComboBox,JFieChooser,JMenuItem,JRadioButton ItemEvent JButton ,JCheckBox,JComboBox ,JMenuItem,JRadioButton MouseEvent JFrame,JPanel WindowEvent JList,JTable ListSelectedEvent JTextField CangeEvent JSlider ActionEvent 버튼을 클릭하거나 텍스트 필드에서 Enter키를 누를때 메뉴를 선택할때 발생한다. ItemEvent 체크박스나 라디오 버튼의 아이템을 선택하거나 해제할 때 또는 콤보 박스에서 아이템을 선택할 때 발생 ListSelectionEvent JList의 아이템을 선택할 때 발생된다.

15


Download ppt "목 차 1. swing component 특징 및 관련 packages"

Similar presentations


Ads by Google