我是一名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();
}
}
请不要忘记我是初学者所以请用简单的语言给我一个解决方案。
答案 0 :(得分:4)
当您使用FlowLayout
管理器时,JTextArea不会与JFrame一起重新调整大小,该管理器使用首选组件大小而不是扩展它们以填充容器的整个空间。要解决此问题,您可以删除该行:
frame.setLayout(new FlowLayout());
JFrame
个容器默认使用BorderLayout
管理器,这将执行您正在寻找的必要大小。
同时删除该行
frame.getContentPane().add(textArea);
因为只需要将JScrollPane
添加到框架中。