JSeparator不在我的JPanel中的正确位置

| 所以我的代码如下:
JPanel mainPanel = new JPanel();

mainPanel.setBorder(new EmptyBorder(50,50,0,10));

BoxLayout layout = new BoxLayout(mainPanel, BoxLayout.Y_AXIS);
mainPanel.setLayout(layout);

JSeparator separate = new JSeparator(SwingConstants.HORIZONTAL);
mainPanel.add(separate);

mainPanel.add(new JButton());
mainPanel.add(new JButton());
我一直遇到的问题是,而不是我的面板看起来像:
______________
|             |
|  ------     |
|  Button     |
|  Button     |
|             |
|             |
|             |
______________
由于某种原因,它在按钮和分隔符之间放置了大量空间,因此看起来像:
______________
|             |
|  ------     |
|             |
|             |
|             |
|  Button     |
|  Button     |
______________
为了我的一生,我无法将按钮放在JSeparator旁边,有什么想法吗?     
已邀请:
        BoxLayout遵循组件的最大大小。当有更多可用空间时,组件将占用更多空间。您需要防止分隔符增长:
JSeparator separate = new JSeparator(SwingConstants.HORIZONTAL);
System.out.println(separate.getPreferredSize());
System.out.println(separate.getMaximumSize());
Dimension d = separate.getPreferredSize();
d.width = separate.getMaximumSize().width;
separate.setMaximumSize( d );
    
        如果Y对齐方式(来自.getAlignmentY())不同,则BoxLayout倾向于做一些时髦的事情。尝试手动将路线设置在顶部。 (BoxLayout中的X对齐发生相同的情况。)     

要回复问题请先登录注册