Java 对齐不同DesignGridLayout的标签列
考虑使用两个Java 对齐不同DesignGridLayout的标签列,java,swing,layout-manager,Java,Swing,Layout Manager,考虑使用两个JPanel实例,如下所示: JFrame demoApplicationFrame = new JFrame(); JPanel singleDesignGridLayout1 = new JPanel(); DesignGridLayout layout1 = new DesignGridLayout(singleDesignGridLayout1); layout1.row().grid(new JLabel("Short lbl1")).add(new JTextField(
JPanel
实例,如下所示:
JFrame demoApplicationFrame = new JFrame();
JPanel singleDesignGridLayout1 = new JPanel();
DesignGridLayout layout1 = new DesignGridLayout(singleDesignGridLayout1);
layout1.row().grid(new JLabel("Short lbl1")).add(new JTextField(""));
layout1.row().grid(new JLabel("Short lbl2")).add(new JTextField(""));
JPanel singleDesignGridLayout2 = new JPanel();
DesignGridLayout layout2 = new DesignGridLayout(singleDesignGridLayout2);
layout2.row().grid(new JLabel("A bit longer label"))
.add(new JTextField(""));
layout2.row().grid(new JLabel("Another long label here"))
.add(new JTextField(""));
demoApplicationFrame.getContentPane().add(singleDesignGridLayout1,
BorderLayout.NORTH);
demoApplicationFrame.getContentPane().add(singleDesignGridLayout2,
BorderLayout.SOUTH);
执行该代码将创建此窗口:
是否可以对齐两个面板标签的列
是否可以对齐两个面板标签的列
不,这不是因为在同一容器中使用网格。因此,如果组件放置在不同的面板中,则DesignGridLayout
无法确保跨面板组件对齐
在这种情况下,您只能寻找变通方法(如果有的话)。要意识到这一点:是的,我们应该这样做。因此,设置固定标签大小也不是一个选项
一些想法 我在考虑这个问题,这不是一个
DesignGridLayout
限制,而是关于布局管理器的工作方式。如果您查看本课的第节,它会说明:
- 计算容器的最小/首选/最大尺寸
- 把容器的孩子们放好
- (这不是我最喜欢的,但可能有用)