Java/Java Tip

[Java] Swing JTextArea 화면 꽉차게 나타내는법(Resizable)

balabala 2021. 5. 7. 22:30
728x90
SMALL

1. JTextArea를 전체화면으로 사용할 때(ex. 메모장)

import javax.swing.*;

public class Task extends JFrame{
    private JTextArea textArea;
    public Task(){
        super("테스트");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        textArea = new JTextArea();
        JScrollPane scrollPane = new JScrollPane(textArea);
        this.add(scrollPane);

        setSize(500, 500);
        setVisible(true);
    }
    public static void main(String[] args){
        new Task();
    }
}

 

그림1. 결과 창

SMALL

2. JPanel로 구역을 나누었을때 해당하는 Panel만 꽉차는 JTextArea를 사용할 때

import javax.swing.*;
import java.awt.*;

public class Task extends JFrame{
    private JTextArea textArea;
    private JPanel panel1; // 1번 구역
    private JPanel panel2; // 2번 구역
    public Task(){
        super("테스트");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container container = getContentPane();
        container.setLayout(new BorderLayout());

        textArea = new JTextArea();
        JScrollPane scrollPane = new JScrollPane(textArea);

        panel1 = new JPanel();  // 1번 구역
        panel2 = new JPanel();  // 2번 구역

        container.add(panel1, BorderLayout.NORTH);

        panel1.setLayout(new BorderLayout());
        panel1.add(scrollPane, BorderLayout.CENTER); // JTextArea를 추가하여 전체화면으로 설정
        panel1.setPreferredSize(new Dimension(this.getWidth(), 150)); // panel의 height 값 설정

        container.add(panel2, BorderLayout.CENTER);
        panel2.setBackground(Color.LIGHT_GRAY);

        setSize(500, 500);
        setVisible(true);
    }
    public static void main(String[] args){
        new Task();
    }
}

그림2. 결과 창

 

728x90
LIST