使用 Java Swing 类库制作简单文本编辑器所需的建议

问题描述 投票:0回答:2

我是一个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();
}
}

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

java swing awt
2个回答
4
投票

JTextArea 不会随 JFrame 一起调整大小,因为您使用的是

FlowLayout
管理器,该管理器使用组件的首选大小,而不是扩展它们以填充容器的整个空间。要修复您可以删除该行:

frame.setLayout(new FlowLayout());

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

同时删除线

frame.getContentPane().add(textArea);

因为只需将

JScrollPane
添加到框架中即可。


0
投票

删除该行:

  • frame.pack();

也可以使用:

  1. frame.setSize(450, 550);
  2. frame.setResizable(true);
  3. frame.setVisible(true);
© www.soinside.com 2019 - 2024. All rights reserved.