编程语言
首页 > 编程语言> > java BoxLayout面板的对齐方式

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和type6,大小相同,所以它们看起来很好.但是,标题和前4个面板的大小不同,我希望它们全部左对齐.到目前为止,我还没有找到一个很好的解决方案,如何解决这个问题.

问题是,我怎么能保持对齐前5个面板,而不是最后2个?如果不是,我怎么能将它们全部对齐? 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);

标签:boxlayout,java,user-interface,swing,layout-manager
来源: https://codeday.me/bug/20190929/1830360.html