如何在JPanel中设置左对齐JLabel

时间:2015-10-16 13:30:07

标签: java swing jpanel jlabel

我有一个插入JFrame的JPanel。 现在,我想在我的JPanel左侧显示一个JLabel。所以我有这个代码:

JPanel panelHeader = new JPanel();
panelHeader.setBackground(new Color(52,151,236));
panelHeader.setPreferredSize(new Dimension(300,25));

GridBagConstraints GBC = new GridBagConstraints();
Container CR = new Container();
GridBagLayout GBL = new GridBagLayout();
CR.setLayout(GBL);     
panelHeader.add(CR);

LabelFormat label = new LabelFormat("EasyManagement",new Font("Arial Narrow", Font.PLAIN, 16),Color.white);
GBC = new GridBagConstraints();
CR.add(label);
GBC.gridx=0;
GBC.gridy=0;
GBC.insets.left = 1;
GBC.insets.top=0;
GBC.fill = GridBagConstraints.BOTH;
GBC.anchor= GridBagConstraints.EAST;
GBL.setConstraints(label,GBC);

使用此代码,我无法在JPanel左侧显示JLabel,但我在中心看到它。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

- 您可能希望设置JLabel的horizo​​ntalAlignment属性。一种方法是通过它的构造函数。尝试:

JLabel label = new JLabel(lText, SwingConstants.LEFT);

这也可以通过预期的setter方法完成:

label.setHorizontalAlignment(SwingConstants.LEFT);

- 您还可以尝试为JLabel JPanel容器使用LEFT对齐

myJPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); 

- 最终方式:

您可以使用JPanel

将标签打包在FlowLayout.LEADING
JPanel wrapper = new JPanel(new FlowLayout(FlowLayout.LEADING,0, 0));
wrapper.add(Jlabel);
panel.add(wrapper);

enter image description here

还要记住遵循Java命名约定。变量以小写字母开头,使用驼峰套管:JlabeljLabel