3

我是一个java初学者,我想做一个简单的文本编辑器,但我发现了以下问题。JTextArea 不会与 JFrame 一起重新调整大小。这是我的代码:

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

public class textEditor
{
JFrame frame;
JTextArea textArea;
JScrollPane scrollPane;
//JButton button;

public textEditor()             //Constructor
{
    frame = new JFrame("Title of the frame!");
    frame.setLayout(new FlowLayout());
    textArea = new JTextArea("");
    scrollPane = new JScrollPane(textArea);

            scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

    //button = new JButton();


}

public void launchFrame()
{
    //Adding Text Area and ScrollPane to the Frame
    frame.getContentPane().add(textArea);
    frame.getContentPane().add(scrollPane);

    //Make the Close button to close the frame when clicked
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //Displaying the Frame
    frame.setVisible(true);
    frame.pack();
}

public static void main(String args[])
{
    textEditor window=new textEditor();
    window.launchFrame();
}
}

请不要忘记我是初学者,所以请用简单的话给我一个解决方案。

4

1 回答 1

4

JTextArea 不会与 JFrame 一起重新调整大小,因为您使用的FlowLayout管理器使用组件的首选大小而不是扩展它们以填充容器的全部空间。要修复,您可以删除该行:

frame.setLayout(new FlowLayout());

JFrame容器BorderLayout默认使用管理器,它将执行您正在寻找的必要大小。

同时删除该行

frame.getContentPane().add(textArea);

因为只有JScrollPane需要添加到框架中。

于 2012-10-07T10:35:27.013 回答