【问题标题】:How to set my GUI window to full screen with my JTextArea?如何使用我的 JTextArea 将我的 GUI 窗口设置为全屏?
【发布时间】:2012-12-29 17:43:37
【问题描述】:

我有一个带有 GUI 窗口的完整 Java 程序,我想在按下最大化按钮以全屏显示我的 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.........

}

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

【问题讨论】:

  • 更新你的代码你尝试了什么?
  • 这完全取决于您使用的布局管理器,您还没有告诉我们。例如,如果持有 JTextArea 的 JScrollPane 由 BorderLayout 使用容器在 BorderLayout.CENTER 位置持有,那么当容器展开时它将向所有方向展开。
  • textarea 在哪里?发布整个代码

标签: java swing user-interface layout-manager


【解决方案1】:

你的问题出在这一行:

this.setLayout(null);

您希望您的布局能够灵活响应大小的变化,如果您根本不使用任何布局,您就不能指望这会起作用。再次根据我近一个小时前发布的评论:

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

阅读layout manager tutorials 并使用它们。故事结束。

【讨论】:

    【解决方案2】:

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

    默认情况下JFrame 具有BorderLayoutBorderLayout 默认将容器可见区域分为 5 个部分。在这五个部分中,BorderLayout.CENTER 倾向于将其他部分推到最小宽度/高度,并在这些部分中没有添加任何组件时占用空间。

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

    【讨论】:

      【解决方案3】:

      你需要这样的东西

       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);
      

      【讨论】:

        猜你喜欢
        • 2022-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-01
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多