Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据计算机资源调整JFrame和组件的大小_Java_Swing_Layout_Resize_Dimension - Fatal编程技术网

Java 根据计算机资源调整JFrame和组件的大小

Java 根据计算机资源调整JFrame和组件的大小,java,swing,layout,resize,dimension,Java,Swing,Layout,Resize,Dimension,我已经在netbeans中开发了一个java应用程序,我想知道如何使jframe的大小达到计算机分辨率的一半,并使组件符合这一变化。我试着输入代码,它确实使画面的高度达到计算机分辨率的一半,但我的组件,如按钮和文本字段,停止显示。我怎样才能做到这一点?谢谢。与往常一样,在这种情况下,关键是为您的容器使用正确的布局管理器组合。您可能正在使用NetBeans生成的代码(我建议您在非常熟悉Swing编码之前避免使用这种代码),并且可能正在使用GroupLayout,这是一种很好的布局,但在调整组件大小

我已经在netbeans中开发了一个java应用程序,我想知道如何使jframe的大小达到计算机分辨率的一半,并使组件符合这一变化。我试着输入代码,它确实使画面的高度达到计算机分辨率的一半,但我的组件,如按钮和文本字段,停止显示。我怎样才能做到这一点?谢谢。

与往常一样,在这种情况下,关键是为您的容器使用正确的布局管理器组合。您可能正在使用NetBeans生成的代码(我建议您在非常熟悉Swing编码之前避免使用这种代码),并且可能正在使用GroupLayout,这是一种很好的布局,但在调整组件大小时,它的性能可能不如您希望的那样好。我建议您浏览并尝试嵌套JPanel容器,并使用不同的重新调整大小的布局,如GridLayout、GridBagLayout和BorderLayout,以尝试创建可以重新调整大小的最佳布局。

与往常一样,在这种情况下,关键是为容器使用正确的布局管理器组合。您可能正在使用NetBeans生成的代码(我建议您在非常熟悉Swing编码之前避免使用这种代码),并且可能正在使用GroupLayout,这是一种很好的布局,但在调整组件大小时,它的性能可能不如您希望的那样好。我建议您浏览并尝试嵌套JPanel容器,并使用不同的重新调整大小的布局,如GridLayout、GridBagLayout和BorderLayout,以尝试创建可以重新调整大小的最佳布局。

(已编辑)

将JFrame的布局管理器设置为。在GridLayout本身的属性窗口中(在导航器窗口中选择),将列设置为1,将行设置为2。这应该给你你想要的,你不必进入代码

这是在
JFrame
子类(由NetBeans创建)的
initComponents()
方法中调用的关键代码,但了解它的位置很重要:

    getContentPane().setLayout(new java.awt.GridLayout(2, 1));
我喜欢Netbeans,但你必须了解基本知识

祝你的项目好运。Swing是一个非常棒的工具集,远远领先于它的时代。

(已编辑)

将JFrame的布局管理器设置为。在GridLayout本身的属性窗口中(在导航器窗口中选择),将列设置为1,将行设置为2。这应该给你你想要的,你不必进入代码

这是在
JFrame
子类(由NetBeans创建)的
initComponents()
方法中调用的关键代码,但了解它的位置很重要:

    getContentPane().setLayout(new java.awt.GridLayout(2, 1));
我喜欢Netbeans,但你必须了解基本知识



祝你的项目好运。Swing是一个非常棒的工具集,远远领先于它的时代。

使用适当的布局管理器。如果您提供适当的使用和适当的布局管理器,您也可以更成功地获得答案。如果你能提供一个合适的答案,你也可以更成功地得到答案。我将如何改变我的项目布局?我不能在代码中编辑它,因为它说Netbeans会处理它。我同意你应该对Swing的基本原理有很好的了解,但我认为,在使用令人敬畏的Netbeans WYSIWYG环境之前,您不必是专家。@GuidoAnselmi:我在哪里说过需要成为专家?@Navio53:请通读布局管理器教程。不要编辑NetBeans不可编辑的代码部分,而是尝试手工编写。至于要使用哪种特定的布局管理器,如果你不告诉我们你想要实现什么,很难猜测。@GuidoAnselmi:这家伙在黑暗中步履蹒跚,因为除了从NetBeans拖放之外,他对如何创建Swing GUI一无所知,NetBeans将生成“请勿更改”的代码部分。在他能很好地使用NetBeans之前,他当然需要知道更多,所以我认为是时候把他推出他的舒适区了?我不能在代码中编辑它,因为它说Netbeans会处理它。我同意你应该对Swing的基本原理有很好的了解,但我认为,在使用令人敬畏的Netbeans WYSIWYG环境之前,您不必是专家。@GuidoAnselmi:我在哪里说过需要成为专家?@Navio53:请通读布局管理器教程。不要编辑NetBeans不可编辑的代码部分,而是尝试手工编写。至于要使用哪种特定的布局管理器,如果你不告诉我们你想要实现什么,很难猜测。@GuidoAnselmi:这家伙在黑暗中步履蹒跚,因为除了从NetBeans拖放之外,他对如何创建Swing GUI一无所知,NetBeans将生成“请勿更改”的代码部分。在他能很好地使用NetBeans之前,他当然需要知道更多,所以我认为是时候把他推出他的舒适区了?我要更改什么?您必须将JFrame(或任何您想要进行对半的容器)的布局管理器更改为GridBagaLayout。然后制作两个重量相等的网格单元。然后,您将在这些单元格中放置两个容器,并在这些容器中放置您的内容(按钮、文本区域)。您可以通过NetBeans UI更改布局管理器。它应该在组件树中。它被称为“导航器”。你也可以右键单击JFrame并选择“设置布局”。这些网格单元,你的意思是像面板一样,然后放置相应的权重吗?嘿,Navio,我更正并测试了我的解决方案。再试一次。GridLayout甚至更简单,解决了这个问题。但是在我现有的项目上,我该怎么做呢?我要更改什么?您必须将JFrame(或任何您想要进行对半的容器)的布局管理器更改为GridBagaLayout。然后制作两个具有相等宽度的网格单元