티스토리 뷰

BorderLayout

BorderLayout 은 Panel의 위치를 깔삼하게 배치해주는 역할을 해준다.

import java.awt.BorderLayout; 

panel.setLayout(new BorderLayout( ) ); setLayout을 사용하여 자기가 원하는 위치에 요소들을 배치할 수 있다.

왼쪽 , 오른쪽 , 위 , 아래 , 가운데 마음대로 배치할 수 있다.

구체적인 사용은 아래 JLabel,  JButton,  JTextArea을 정리하면서 사용법을 공개하겠다.

JLabel

import javax.swing.*;

JLabel 은 글을 표시해주는 역할을 제외하고는 특별한 것이 없다.

예를 들어 어떤 신발 브랜드에 상표로고를 생각해 보자 그 로그에  글을 쓰는 행위가 단순한  글쓰기이므로 JLabel이 그

신발에 글을 쓰도록 해주는 클래스라고 생각해 주면 쉽다.

JLabel label = new JLabel("SunRise"); 

사용법도 단순하다. JLabel 안에 원하고 싶은 문자열을 적어 넣으면 된다.  이후에 panel에  label 내용을 추가해주면 된다.  

panel.addlabel , BorderLayout.NORTH);

SunRise를 적으면 화면에 SunRise라고 잘 출력이 된다.

여기서 BorderLayout.위치 이런 식으로 원하는 위치를 설정할 수 있다. 대문자를 사용해야 한다.

 

 

 

JButton

import javax.swing.*;

말 그래도 버튼 역할을 하는 클래스이다. 버튼에도 글씨를 새길수 있다. JLabel 이 단순히 글씨를 표하는 것이라면 

JButton 은 글씨를 표하면서 동시에 누르는 기능도 가지고 있는 것이다.

JButton btn1 = new JButton("DearFriend");

panel.add(btn1 , BorderLayout.WEST); 

버튼을 서쪽 즉 왼쪽에 배치한 것이다. 화면은 아래와 같이 바뀌게 된다.

 

JTextArea

import javax.swing.*;

설명에 앞서 문자를 패널에 write를 할 때 사용할 수 있는  클래스로 JTextArea를 제외하고도 JTextField가 존재한다.

JTextField는 한 줄로 된 문장을 쓸 때 사용하고 여러 문장을 쓸 때는 JTextArea를 사용한다. 여기에서는 JTextArea를 다루겠다.

JTextArea txtarea = new JTextArea( ) ;

사용법은 간단하다. 현재 JButton을 WEST에 JLabel을 NORTH에 두었으므로  JTextArea는 CENTER에 설정해보겠다.

panel.add( txtxarea , BorderLayout.CENTER );

 

현재 오 마이걸이 컴백해서 텍스트에 이런 식으로 적어 보았다.

여러 줄로 써도 JTextArea 클래스를 사용했기 때문에 문제없이 사용 가능하다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import javax.swing.*;
import java.awt.event.*;
 
public class Main {
  public static void main(String[] args) {
        JFrame frame =new JFrame();
 
        JPanel panel = new JPanel(); 
 
        JLabel label = new JLabel("SunRise");
 
        JButton btn1 = new JButton("DearFriend");
 
        JTextArea txtArea = new JTextArea();
 
      panel.setLayout(new BorderLayout());
 
 
 
        panel.add(label , BorderLayout.NORTH);
 
        panel.add(btn1 , BorderLayout.WEST);
 
        panel.add(txtArea , BorderLayout.CENTER);
 
 
        frame.add(panel);
 
 
 
        frame.setResizable(false);
 
        frame.setVisible(true);
 
        frame.setPreferredSize(new Dimension( 840 , 840/12*9));
 
        frame.setSize(840840/12*9);
 
        frame.setLocationRelativeTo(null);
 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
  }
}
 
 
s

 

 

Danny 씨 감사합니다.

댓글