java BoxLayout面板的对齐方式

我四处浏览,但找不到适合我情况的解决方案。我有一个在对话框中显示的面板:

//create dialog panel

JPanel panel = new JPanel();

panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

panel.add(headerPanel);

panel.add(type1Panel);

panel.add(type2Panel);

panel.add(type3Panel);

panel.add(type4Panel);

panel.add(type5Panel);

panel.add(type6Panel);

int result = JOptionPane.showConfirmDialog(null, panel, "Please enter values.", JOptionPane.OK_CANCEL_OPTION);

最后两个面板(类型5和类型6)的大小相等,因此看起来不错。但是,页眉和前4个面板的大小不同,我希望它们都对齐。到目前为止,我还没有找到解决此问题的好方法。

问题是,我如何左对齐前5个面板,而不对齐最后两个?如果没有,我该如何将它们全部对齐?setalignmentx()不适用于面板。我尝试使用GridLayout,但是gui的主窗口的宽度相当大,无法很好地适应屏幕,因此BoxLayout沿Y轴。感谢您的帮助或建议。

回答:

这是一个示例,它将使添加到用作容器的面板的所有JPanel保持左对齐。

   JPanel a = new JPanel();

JPanel b = new JPanel();

JPanel c = new JPanel();

a.setBackground( Color.RED );

b.setBackground( Color.GREEN );

c.setBackground( Color.BLUE );

a.setMaximumSize( new Dimension( 10, 10) );

b.setMaximumSize( new Dimension( 50, 10) );

a.setAlignmentX( Component.LEFT_ALIGNMENT );//0.0

b.setAlignmentX( Component.LEFT_ALIGNMENT );//0.0

c.setAlignmentX( Component.LEFT_ALIGNMENT );//0.0

JPanel panel = new JPanel();

panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

panel.add(a);

panel.add(b);

panel.add(c);

int result = JOptionPane.showConfirmDialog(null, panel, "Please enter values.", JOptionPane.OK_CANCEL_OPTION);

以上是 java BoxLayout面板的对齐方式 的全部内容, 来源链接: utcz.com/qa/419520.html

回到顶部