3

在将 ChartPanel 添加到 JLabel 后,我无法让 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 不起作用吗?

4

2 回答 2

17

JLabel默认情况下水平对齐到左侧。

您需要将其设置horizontalAlignmentJLabel.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);
于 2013-06-06T08:46:54.827 回答
1

这不会使您的 JLabel 居中,而是将其置于左侧(我认为)。您需要更改 JLabel 的对齐方式。

于 2013-06-06T08:36:23.177 回答