【发布时间】:2013-07-30 21:06:12
【问题描述】:
我正在用 Java 开发一个 GUI。我有几个问题想寻求帮助,希望你们中的一些人能提供帮助。
您可能需要下图:
1.. 条目之间的空格:我希望将其删除。现在,每个条目都是一个 GridLayout 为 2,1 的 JPanel。每行都有另一个 JPanel(line1 和 line2)。默认情况下,第 2 行是隐藏的,应该只在单击编辑按钮时显示,然后在再次单击时隐藏。我可以使用 setVisible() 更改可见性。但它创造了那么大的空间。
[已解决] 2.. Line2 有一个 FlowLayout,我怎样才能让它左对齐?
3.. 每个条目都是类(称为“Preset”)并存储在称为“presetListing”的类变量数组中。当我点击新的分支按钮时,我创建了一个容量为 +1 的新数组,将所有旧的预设转移进来,并在最后一个空间中创建一个新的预设。我需要做什么才能让新条目显示在 GUI 中?我尝试将它添加到 JPanel,然后 validate(),没有工作。
希望有人能帮助我,在此先感谢!
编辑: 这是#3中的代码:
private void newBranch(){
Preset[] tempBranches = new Preset[branches.length + 1];
for (int i = 0; i < branches.length; i++){
tempBranches[i] = branches[i];
}
tempBranches[branches.length] = new Preset();
branches = tempBranches;
pane = new JPanel();
pane.setLayout(new GridLayout(branches.length, 1));
for (int i = 0; i < branches.length; i++){
pane.add(branches[i]);
}
scroller = new JScrollPane(pane);
this.add(scroller, BorderLayout.CENTER);
this.repaint();
this.validate();
}
【问题讨论】:
-
#1 我认为您需要更精细的网格。 #2 最好使用borderlayout-manager 而不是flowmanager。 #3 您需要向我们展示您的一些代码,以便我们对其进行审核。
-
GridLayout使每个组件的大小相同。GridBagLayout会更灵活。 -
更精细的网格是什么意思?您对#2的解决方案有效,非常感谢!我现在会找到代码。
-
使用
GridBagLayout来更好地控制表单控件,正如@kiheru 建议的那样。 -
我现在正在查看 GridBagLayout,我发布了我为#3 尝试过的 doe。
标签: java swing jframe jpanel layout-manager