问题描述
如果我想在面板内拥有一组具有固定列跨度的列,最好的 Swing 布局是什么?
类似于以下内容:
我希望第一列跨越面板宽度的 20%,第二列跨越面板宽度的 50%,第三列跨越面板宽度的 30%
解决方法
在 Oracle's 网站上有关于 Java Swing 布局的出色视觉指南。
对于您的情况,GridBagLayout 将是您的最佳选择,即使它是最复杂的。您还可以使用其他布局,尽管这取决于您实际尝试执行的操作。您可以查看 GridLayout、BoxLayout、BorderLayout 甚至默认布局 (FlowLayout) 都可以工作。
你也可以看看 JTable,因为你写的是列,我注意到左边的小圆圈看起来像一个索引号或其他东西,但我可能是错的。也许你正在尝试做一种表格......
,我的结果:
你可以使用 MigLayout 库,它对 java 布局很有用 对于我的示例代码
panel.setLayout(new MigLayout());
panel.add(new JTextField(),"w 20%");
panel.add(new JTextField(),"w 50%");
panel.add(new JTextField(),"w 30%");