[Java] 2020.11.19. day_22 복합레이아웃, 수동배치, Swing Component사용법, Component종류
2020. 11. 19. 17:59ㆍWeb_Back-end/Java SE
◎ 복합 레이아웃
복합 레이아웃 | |
제공되는 Layout Manager를 사용하여 복잡한 디자인을 만들 때 | |
1 Frame의 Layout은 BorderLayout 설정 | |
2 North영역에 3개의 컴포넌트가 배치 (라벨, 텍스트필드, 버튼 - Container Component에 배치하여 North영역에 Container Component하나를 배치한다) |
|
3 Center영역에 textArea 배치 | |
BorderLayout은 하나의 영역에 하나의 컴포넌트가 고유크기를 무시하고 배치된다 | |
JFrame | Window Component : BorderLayout |
JPanel | Container Component : FlowLayout |
○ 수동배치
수동배치 | |
제공되는 Layout Manager를 사용하지 않고 개발자가 배치되는 컴포넌트의 크기와 위치를 직접 설정하는 배치방법 |
|
장점 | 배치관리자가 제공하지 않는 복잡한 디자인을 만들 때 |
단점 | 코딩량이 많아진다 좌표와 크기계산을 해야한다 |
수동배치 방법 | |
1 자동배치관리자를 해제한다 setLayout( null ); //new 배치관리자_설정, null_해제 |
|
2 컴포넌트를 생성하고 배치되는 위치와 크기 설정 위치설정 : setLocation( x, y ); 크기설정 : setSize( w, h ); 위치와 크기를 한번에 설정 : setBounds( w, y, w, h ); - 위치설정은 JFrame에 사용되면 모니터 왼쪽 상단이 시작점이고 Container Component나 Component에 사용되면 배치되는 JFrame의 왼쪽 상단이 시작점이 된다 |
○ Swing Component 사용법
Swing Component 사용법 | |
이미지 | ImageIcon 클래스로 이미지를 손쉽게 사용할 수 있다 Component가 Icon을 매개변수로 정의하고 있으면, ImageIcon을 생성하여 넣어줄 수 있다 |
사용법 | 1 ImageIcon 객체화 : 이미지파일의 경로는 절대경로( c:/ )를 사용한다 ImageIcon ii = new ImageIcon("이미지파일의 경로"); |
2 이미지를 사용할 컴포넌트에서 이미지아이콘 객체를 설정 2-1 생성자를 사용 JButton jb = new JButton( ii ); //ii : 아이콘이미지 객체 2-2 method 사용 : setIcon(); JButton jb = new JButton(); //아이콘이 없는 버튼생성 jb.setIcon( ii ); //method를 사용하여 이미지설정 |
○ Component 종류
Component 종류 | |
JLabel | 이름표. 컴포넌트의 정보제공. JLabel jl = new JLabel(“문자열”); |
JTextField | 한줄의 문자열을 입력받을 때 JTextField jtf = new JTextField(); //보여주는 글자 수가 0글자 JTextField jtf = new JTextField( 5 ); //대문자 'A'기준 5글자를 보여주는 크기 JTextField jtf = new JTextField( "문자열" ); //문자열이 들어간 상태로 제공 |
JPasswordField | 반향문자 (EchoChar) 를 사용하여 한 줄의 문자열을 입력 받을 때 반향문자. 입력한 문자 대신 설정한 문자가 표현되는 것 1) 생성 JPasswordField jpf = new JPasswordField(); //크기설정가능 //생성된 JPasswordField는 한글입력이 안된다 2) 반향문자를 설정할 수 있다 jpf.setEchoChar( '*'); |
JTextArea | 여러줄의 문자열을 입력할 때 java.awt.TextArea : ScrollBar가 포함되어 제공 javax.swing.TextArea : ScrollBar가 별도로 제공 JTextArea에 ScrollBar를 제공하기 위해 Container Component 사용법) 1. JTextArea를 생성) JTextArea jta = new JTextArea(); 2. ScrollBar를 가져야하는 컴포넌트를 위해 JScrollPane이 제공 스크롤 바를 가져야할 컴포넌트를 생성하고 JScrollPane과 Has a 관계설정 JScrollPane jsp = new JScrollPane( jta ); 3. 배치 add( jsp ); |
CheckBox | 여러 개의 선택을 해야할 때 JCheckBox jcb = new JCheckBox( "메세지" ); //체크가 해제된 상태로 제공 JCheckBox jcb = new JCheckBox( "메세지" , boolean ); //체크여부 |
JRadioButton | 여러개 중 하나를 선택해야할 때 -ButtonGroup에 포함되어야 여러개중 하나만 선택 가능한 상태 JRadioButton jrb = new JRadioButton( "메세지" ); //체크가 해제된 상태로 제공 JRadioButton jrb = new JRadioButton( "메세지", boolean ); //체크여부 -라디오버튼은 버튼 그룹으로 묶여야 하나의 라디오버튼만 선택가능 ButtonGroup bg = new ButtonGroup(); bg.add( 라디오버튼 객체 ); |
'Web_Back-end > Java SE' 카테고리의 다른 글
[Java] 2020.11.25. day_24 이벤트처리(is a, has a 관계) ActionListener, WindowListener (0) | 2020.11.25 |
---|---|
[Java] 2020.11.20. day_23 Component종류 (0) | 2020.11.20 |
[Java] 2020.11.18. day_21 AWT,Swing,WindowListener,WindowAdapter, Layout Manager (0) | 2020.11.18 |
[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 |