BorderLayout を使用して、左 (西) と右 (東) に 1 つずつ、2 つの異なる JButton を配置し、中央に水平 JSeparator を配置しました。私がやりたいことは、セパレーターを現在のように上ではなく、中央に y 揃えすることです。セパレーターで次の方法を使用しようとしました
setAlignmentY(CENTER_ALIGNMENT);
しかし、それはまったく効果がありません。私は何が欠けていますか?それが不可能な場合、外部ライブラリを使用せずにそれを行う他の方法はありますか?
これは私が得るものです:
これが私が達成したいことです:
これは私が使用しているサンプル コードです (上と下の JPanels はわかりやすくするために追加されています)。
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 を使用しました。