我想把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);
}
}
提前致谢
答案 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);