使用 BorderLayout 我放置了两个不同的 JButton,一个在左侧(西),一个在右侧(东),一个水平的 JSeparator 在中心。我想要做的是将分隔符与中心对齐,而不是像现在这样对齐到顶部。我已经尝试在分隔符上使用以下方法
setAlignmentY(CENTER_ALIGNMENT);
但它绝对没有效果。我错过了什么?如果不可能,有没有其他方法可以在不使用外部库的情况下做到这一点?
这就是我得到的:
这就是我想要实现的目标:
这是我正在使用的示例代码(为了清楚起见,添加了顶部和底部的 JPanel):
import java.awt.BorderLayout;
import javax.swing.*;
public class SeparatorTest extends JFrame{
JButton btn1 = new JButton("button1");
JSeparator sep = new JSeparator(SwingConstants.HORIZONTAL);
JButton btn2 = new JButton("button2");
public SeparatorTest() {
getContentPane().add(BorderLayout.NORTH, new JPanel());
getContentPane().add(BorderLayout.WEST, btn1);
getContentPane().add(BorderLayout.CENTER, sep);
getContentPane().add(BorderLayout.EAST, btn2);
getContentPane().add(BorderLayout.SOUTH, new JPanel());
setSize(300, 85);
}
public static void main(String[] args){
new SeparatorTest().setVisible(true);
}
}
编辑 1:我不介意布局,只要它看起来相同,我在这里使用 BorderLayout 因为它的简单性。