2020. 11. 18. 17:37ㆍWeb_Back-end/Java SE
◎ AWT _ Window Component 종료이벤트처리
AWT | Swing |
AWT, Swing : 호환가능 | |
Swing은 AWT와 호환가능 | |
java.awt | javax.swing //x : extenstion(확장) : 추가된 패키지 추가된 패키지 : 기존기능을 갱신, 갱신할 필요없는 기능은 기존의 기능을 사용한다(호환) |
기능만 저장, 디자인은 OS에서 사용 | 기능과 디자인을 JVM이 모두 저장 |
속도↓ , Error↑ | 속도↑, Error↓ |
OS마다 다르게 보여진다 | OS마다 동일하게 보여진다 |
◎ Swing 코딩순서_AWT와 거의 같다
코딩순서 | Swing | |
1 | Window Component 상속 | // Window Component : JFrame : 종료가 된다 |
public class Test extends JFrame{ |
||
2 | 생성자 작성 | public Test (){ super("타이틀바에 들어갈 내용"); |
3 | 일반 Component 생성 | JButton (Button도 가능_호환가능) Button button = new Button("버튼이다"); JButton jbutton = new JButton("J버튼이다"); |
4 | 배치 (3번에서 생성된 Component를 붙이는 것) | add(Component); //add : 부모_윈도우 컴포넌트or컨테이너 컴포넌트, Component :일반컴포넌트 //일반컴포넌트가 윈도우or컨테이너 컴포넌트에 배치 |
배치관리자(Layout Manager)를 사용하여 컴포넌트를 배치 |
setLayout(new GridLayout(rows, cols)); //행,열 add(button); add(jbutton); |
|
5 | 윈도우컴포넌트의 크기설정 | setSize( w, h ); |
6 | 윈도우를 사용자에게 보여주기 | setVisible( true ); |
7 | 윈도우컴포넌트 종료처리 | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } |
instance화 | public static void main(String[] args){ new Test(); } } |
○ 배치관리자(Layout Manager)
배치관리자(Layout Manager) | |
awt package에서 사용 | |
Container Component, Component를 지정된 위치에 편하게 배치하기 위해서 사용 | |
Nom Visual Component : 사용자에게 보여지지 않는다 | |
Window Component(Frame,JFrame,JDialog,,), Container Component(JPanel, JScrollPane)에 적용하여 사용 일반 Component는 배치관리자를 가질 수 없다 |
|
종류 | |
BorderLayout (경계 레이아웃) |
Window Component의 기본 Layout 하나의 지역(ex:West)에는 하나의 Component만 배치된다 배치되는 Component는 고유크기가 무시되고, 배치되는 곳의 크기에 맞게 변경된다 배치되는 위치를 지정해야한다 (지정x->center로 배치) ![]() 사용법) |
FlowLayout (흐름 레이아웃) |
Container Component의 기본 Layout 배치되는 컴포넌트는 고유크기대로 배치된다 배치는 왼→오 순서로 배치된다 윈도우의 크기가 줄거나 늘어나면 컴포넌트의 위치가 위에서 아래로 이동한다 ![]() 사용법) |
GridLayout (격자 레이아웃) |
행과 열로 구성된 레이아웃 컴포넌트의 크기가 동일하게 배치되는 레이아웃 컴포넌트는배치하는 순서대로 왼→오 순서로 배치된다 ![]() 사용법) |
CardLayout 잘 안씀 |
Container Component 에만 적용할 수 있는 레이아웃 한정적인 공간에 다른 디자인을 제공할 때 사용 (tab 역할) 여러개의 Container Component를 만들어두고 그 중 하나의 Container Component를 보여줌 |
GridBagLayout 잘 안씀 |
행마다 열의 크기, 갯수를 다르게 보여줄 때 사용 수동배치를 사용하면 GridBagLayout사용하지 않아도 됨_잘 안쓰는 이유 ![]() |
적용방법 | |
1 배치관리자 생성 | BorderLayout b = new BorderLayout(); |
2 적용 | 2-1 Window Component //기본레이아웃 : BorderLayout setLayout( b ); //코드의 재사용성 //부모클래스로 JFrame을 상속받는다 |
2-2 Container Component //기본레이아웃 : FlowLayout 1. Comtainer Component 생성 JPanel jp = new JPanel(); 2. 적용 jp.setLayout( b ); |
'Web_Back-end > Java SE' 카테고리의 다른 글
[Java] 2020.11.20. day_23 Component종류 (0) | 2020.11.20 |
---|---|
[Java] 2020.11.19. day_22 복합레이아웃, 수동배치, Swing Component사용법, Component종류 (0) | 2020.11.19 |
[Java] 2020.11.17. day_20 Map_HashTable,HashMap, JFC_AWT,Swing (0) | 2020.11.17 |
[Java] 2020.11.16. day_19 객체화종류, 자주사용하는클래스_List,Set (0) | 2020.11.16 |
[Java] 2020.11.13. day_18 자주사용하는클래스_날짜클래스(Date,SimpleDateFormat,Calendar),Random클래스 (0) | 2020.11.13 |