[자바 Java]

자바 스윙 JTextArea 크기 변경 자유롭게 Resizeable

말하는펭귄 2020. 9. 28. 22:00
728x90
반응형

자바 스윙으로 간단한 방명록 프레임을 만들어 보았습니다.

근데 여기서 제가 하고 싶었던 것은 사용자가 드래그하여 창 크기를 변경할 때마다 JTextArea의 크기도 같이 조절되게 하는 것이었죠. 

 

결론부터 말하자면 아래와 같습니다.

JTextArea의 크기를 자동 조절되게 하는 법  >>

BorderLayout.CENTERJTextArea 붙이기  

 

아래의 코드의 15~22줄을 참고하시길 바랍니다.

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
import javax.swing.*;
import java.awt.*;
 
public class GuestBookFrame extends JFrame {
    public GuestBookFrame() {
        setTitle("방명록 프레임");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container c = getContentPane();
        c.setLayout(new BorderLayout());
        c.add(new CenterPanel(),BorderLayout.CENTER);
        c.add(new SouthPanel(),BorderLayout.SOUTH);
        setSize(300,300);
        setVisible(true);
    }
    class CenterPanel extends JPanel {
        public CenterPanel() {
            setLayout(new BorderLayout());
            JTextArea ta = new JTextArea();
            JScrollPane sp = new JScrollPane(ta);
            add(sp, BorderLayout.CENTER);
        }
    }
    class SouthPanel extends JPanel {
        public SouthPanel() {
            setLayout(new FlowLayout());
            add(new JButton("확인"));
            add(new JButton("취소"));
        }
    }
 
    public static void main(String[] args) {
        new GuestBookFrame();
    }
 
}
 
cs

 

 

아래의 프로그램을 실행하면 다음과 같은 GUI가 탄생합니다.

 

우측하단을 드래그하여 창 크기를 조절하면 JTextArea도 그에 맞게 자동으로 크기가 조절됩니다.

 

저는 JScrollPane도 첨가하여 스크롤까지 가능한 텍스트 입력창을 만들었지만 경우에 따라 스크롤이 필요 없다면 JScrollPane에 JTextArea를 할당하여 JScrollPane을 add하지 않고 JTextArea만 add하시면 될 것 같습니다.

 

 

728x90
반응형