BorderLayout.CENTER不居中

时间:2013-06-06 08:35:04

标签: java swing jpanel layout-manager border-layout

在向其添加ChartPanel之后,我无法让我的JLabel居中在我的JPanel中:

JPanel panel = new JPanel(new BorderLayout());            
panel.add(visualiser(ternaire), BorderLayout.NORTH);//visualiser(ternaire) is the ChartPanel
panel.add(new JLabel("L'alliage a bien été enregistré."), BorderLayout.CENTER);
JOptionPane jop = new JOptionPane();            
jop.showMessageDialog(null, panel, "Information", JOptionPane.PLAIN_MESSAGE);

任何想法为什么BorderLayout.CENTER不起作用?

2 个答案:

答案 0 :(得分:12)

默认情况下,

JLabel水平对齐到左侧。

您需要将horizontalAlignment设置为JLabel.CENTER

JPanel panel = new JPanel(new BorderLayout());
JLabel label = new JLabel("L'alliage a bien été enregistré.");
label.setHorizontalAlignment(JLabel.CENTER);
label.setVerticalAlignment(JLabel.CENTER);
panel.add(label, BorderLayout.CENTER);

答案 1 :(得分:1)

这不是你的JLabel的中心,它把它放在左侧(我认为)。您需要更改JLabel的对齐方式。