これは、次のプロパティを持つ一連の JLabels で表示するつもりだった JFrame です。
- 縦積み
- 水平方向に中央揃え
- 緑の枠
- 白色の背景
- 青文字
しかし、私は代わりにこれを取得します:
垂直に積み重ねられた青いテキスト、緑の境界線は問題なく機能しますが、白い背景と水平方向の中央には機能しません。また、ラベルが JPanel の幅全体に広がると思っていたでしょう。
私は何を間違っていますか?
編集:背景色に関するこの質問を見逃しました。残りの質問は、BoxLayout と、他の軸でのコンポーネントの配置についてです。
import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
public class BoxLayoutLabelsTest extends JFrame
{
public BoxLayoutLabelsTest(String title)
{
super(title);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
addLabel(panel, "Hydrogen");
addLabel(panel, "Helium");
addLabel(panel, "Lithium");
addLabel(panel, "Beryllium");
addLabel(panel, "Boron");
setContentPane(panel);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
static private void addLabel(JPanel panel, String text) {
JLabel label = new JLabel(text);
label.setBorder(BorderFactory.createLineBorder(Color.GREEN));
label.setBackground(Color.WHITE);
label.setForeground(Color.BLUE);
label.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label);
}
public static void main(String[] args) {
new BoxLayoutLabelsTest("BoxLayoutLabelsTest").setVisible(true);
}
}