如何使用JTextArea将GUI窗口设置为全屏



我有一个完整的Java程序和GUI窗口,我想在按下最大化按钮时将此窗口设置为全屏,以显示更大的JTextArea。我在GUI 中使用

public final class Test extends javax.swing.JFrame {
private JLabel label1;
private JLabel label2;
private JLabel label3;
private JLabel label4;
private JLabel label5;
private JTextField field1;
private JTextField field2;
private JTextField field3;
private JButton button1;
private JButton button2;
private JButton button3;
private JButton button4;
private JScrollPane scrollpane;
private JTextArea visualization;
private JComboBox list;

public Program_GUI()
{
    this.initialize_graphic_components();  
}

public void initialize_graphic_components()
{
  this.setTitle("Test Program");
  this.setSize(600,400);
  this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
  this.setMinimumSize(new Dimension(600,400));
  this.setLayout(null);
  this.label2=new JLabel("Username:");
  this.label2.setBounds(20,50,120,20);
  this.add(label2);
  this.field2=new JTextField("");
  this.field2.setBounds(20,70,120,20);
  this.add(field2);
  this.visualization = new JTextArea(420,250);
  this.visualization.setEditable(false);
  this.scrollpane=new JScrollPane(this.visualization);
  this.scrollpane.setBounds(160, 50, 420, 250);
  this.add(scrollpane);

  ............here is the rest program.........
}

这是我的程序的开始,我希望当我按下最大化按钮时,我的窗口可以拉伸到显示器的大小,以保持一致
谢谢

您的问题在这一行:

this.setLayout(null);

你希望你的布局是灵活的,能够对大小的变化做出反应,如果你根本不使用布局,你就不能指望这会奏效。再次根据我一个小时前发布的评论:

这完全取决于你使用的是什么布局管理器,这是你没有告诉我们的。例如,如果保存JTextArea的JScrollPane由BorderLayout.CENTER位置的使用BorderLayout的容器保存,则当容器展开时,它将向所有方向展开。

阅读布局管理器教程并使用它们。故事结束了。

所有容器组件都有一个与其关联的Layout。Layout是将组件放置在容器上的方法。

默认情况下,JFrame具有BorderLayout。默认情况下,BorderLayout将容器可见区域划分为5个部分。在这五个部分中,BorderLayout.CENTER有将其他部分推到最小宽度/高度的趋势,并且当没有组件添加到这些部分时占据空间。

因此,根据您的要求,您应该将组件放在BorderLayout.CENTER部分中。

你需要的东西,比如这个

 JFrame frame = new JFrame("Text") ;
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 Box box = Box.createHorizontalBox();
 JTextArea area = new JTextArea(10,10);
 box.add(area);
 frame.add(box);

相关内容

  • 没有找到相关文章

最新更新