如何把JLabel放在JPanel的中心

时间:2012-06-29 08:57:04

标签: java swing jpanel jlabel layout-manager

  

可能重复:
  Centering a JLabel on a JPanel

我想把JLabel放到JPanel的中心。我使用下面的代码所以你能告诉我。这段代码有什么问题? 代码:

public class ColoredRect extends JPanel{

      public double x, y, width, height;  
      public JLabel name;

      public ColoredRect(double x,double y,String label)
      {

          this.x = x;
          this.y = y;
          this.width = 100;
          this.height =40;

          setLocation((int)x,(int)y);
          setSize((int)width,(int)height);
          setBackground(Color.red);

          name = new JLabel(label,JLabel.CENTER);
          name.setForeground(Color.BLACK);
          name.setVisible(true);
          name.setSize(20,20);
          name.repaint();
          add(name);
        }
}

提前致谢

2 个答案:

答案 0 :(得分:2)

将BorderLayout与center属性一起使用,如果JLabel是容器中唯一的组件(即JPanel),那么如果使用BorderLayout,则默认为center。 使用NetLans团队于2005年开发的GroupLayout更好。

例如:

class pan extends JPanel{

        JLabel label = new JLabel("Name");

        public void go(){

            this.setLayout(new BorderLayout());
            this.add(label,BorderLayout.CENTER);
        }
    }

答案 1 :(得分:0)

您也可以使用水平对齐方式:

name.setHorizontalAlignment(SwingConstants.CENTER);