JavaSwingUI组件布局

JavaSwingUI组件布局,java,swing,jpanel,layout-manager,gridbaglayout,Java,Swing,Jpanel,Layout Manager,Gridbaglayout,我正在研究JavaSwing,我被UI布局困住了 我的电流输出如下 我想将其修改为lil,并在两者之间添加两个文本输入,如下面的示例所示。请就如何实现并排文本输入提供帮助 首先:您应该为组件指定比jcombox2更有意义的名称 使用GridBagLayout生成示例图片并不容易。您必须了解,布局将创建一个n*m网格,您可以将组件(如文本字段、标签、组合框等)自由放置在该网格内的任何位置 例如,您的jLabel4在网格中的位置为0/3,虽然我不确定gridwidth为-1的值是多少,但我非常确定

我正在研究JavaSwing,我被UI布局困住了

我的电流输出如下

我想将其修改为lil,并在两者之间添加两个文本输入,如下面的示例所示。请就如何实现并排文本输入提供帮助


首先:您应该为组件指定比
jcombox2
更有意义的名称

使用GridBagLayout生成示例图片并不容易。您必须了解,布局将创建一个n*m网格,您可以将组件(如文本字段、标签、组合框等)自由放置在该网格内的任何位置

例如,您的jLabel4在网格中的位置为0/3,虽然我不确定gridwidth为-1的值是多少,但我非常确定它仍然处于0/3。例如,如果gridwidth为3,则jLabel4的范围为0/3到2/3

因此,如果你想在这两行之间放置一些东西,你需要把它放在正确的网格坐标上,并给它正确的宽度和高度

但是:遗憾的是,完全按照图片中的内容进行操作需要使用一些技巧(例如增加上部和下部组件的网格宽度,或者添加另一个包含新行组件而不是组件本身的面板)。
试着在不使用这些技巧的情况下让它工作(即使它看起来与您的图片不完全一样),因为这可能会帮助您了解GridBagLayout实际上是如何工作的。一旦您真正理解了这一点,重新创建图片应该不会那么困难。

因为这是一个示例程序,所以您已经给出了通用组件名称。是的,我知道在此面板内使用另一个面板,并将我的组件放置在新面板内。我只是想知道是否也可以通过其他方式达到同样的效果。@pankti:不。JPanel内部的JPanel是创建布局的唯一可能的方法。就我而言,作为一个示例程序,它甚至可能会增加对有意义的名称的需要,但没关系。从技术上讲,创建另一个面板不是唯一可行的方法。它只是(可能到目前为止)最不复杂和烦人的一个:D