ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 스윙 JTextArea 크기 변경 자유롭게 Resizeable
    [자바 Java] 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
    반응형

    댓글

S.B. All Rights Reserved.