【发布时间】:2018-12-13 02:05:23
【问题描述】:
我命名了一个自定义标签 MyLabel,它的工作方式有些奇怪。 MyLabel 是一个Label,只是对JLabel 的扩展。
public class MyLabel extends JLabel {
public MyLabel() {
// TODO Auto-generated constructor stub
}
public MyLabel(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public MyLabel(Icon arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public MyLabel(String arg0, int arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
public MyLabel(Icon arg0, int arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
public MyLabel(String arg0, Icon arg1, int arg2) {
super(arg0, arg1, arg2);
// TODO Auto-generated constructor stub
}
}
如您所见,没有添加任何内容。但是,这很奇怪。每当我添加 MyLabel 类标签时,我添加的最后一个会获得约束,尽管我没有添加!
下面是我在 Contentpane 上添加标签的方式。
MyLabel label0_1 = new MyLabel("");
MyLabel label0_2 = new MyLabel("");
MyLabel label0_3 = new MyLabel("");
MyLabel label0_4 = new MyLabel("");
MyLabel label0_0 = new MyLabel("");
MyLabel label1_1 = new MyLabel("");
MyLabel label1_2 = new MyLabel("");
MyLabel label1_3 = new MyLabel("");
MyLabel label1_4 = new MyLabel("");
MyLabel label1_0 = new MyLabel("");
MyLabel label2_1 = new MyLabel("");
MyLabel label2_2 = new MyLabel("");
MyLabel label2_3 = new MyLabel("");
MyLabel label2_4 = new MyLabel("");
MyLabel label2_0 = new MyLabel("");
MyLabel label3_1 = new MyLabel("");
MyLabel label3_2 = new MyLabel("");
MyLabel label3_3 = new MyLabel("");
MyLabel label3_4 = new MyLabel("");
MyLabel label3_0 = new MyLabel("");
MyLabel label4_1 = new MyLabel("");
MyLabel label4_2 = new MyLabel("");
MyLabel label4_3 = new MyLabel("");
MyLabel label4_4 = new MyLabel("");
MyLabel label4_0 = new MyLabel("");
label0_1 = new MyLabel(defaultImage);
label0_2 = new MyLabel(defaultImage);
label0_3 = new MyLabel(defaultImage);
label0_4 = new MyLabel(defaultImage);
label0_0 = new MyLabel(defaultImage);
label1_1 = new MyLabel(defaultImage);
label1_2 = new MyLabel(defaultImage);
label1_3 = new MyLabel(defaultImage);
label1_4 = new MyLabel(defaultImage);
label1_0 = new MyLabel(defaultImage);
label2_1 = new MyLabel(defaultImage);
label2_2 = new MyLabel(defaultImage);
label2_3 = new MyLabel(defaultImage);
label2_4 = new MyLabel(defaultImage);
label2_0 = new MyLabel(defaultImage);
label3_1 = new MyLabel(defaultImage);
label3_2 = new MyLabel(defaultImage);
label3_3 = new MyLabel(defaultImage);
label3_4 = new MyLabel(defaultImage);
label3_0 = new MyLabel(defaultImage);
label4_1 = new MyLabel(defaultImage);
label4_2 = new MyLabel(defaultImage);
label4_3 = new MyLabel(defaultImage);
label4_0 = new MyLabel(defaultImage);
label4_4 = new MyLabel(defaultImage);
label0_0.setBounds(120, 120, 100, 100);
label0_1.setBounds(220, 120, 100, 100);
label0_2.setBounds(320, 120, 100, 100);
label0_3.setBounds(420, 120, 100, 100);
label0_4.setBounds(520, 120, 100, 100);
label1_0.setBounds(120, 220, 100, 100);
label1_1.setBounds(220, 220, 100, 100);
label1_2.setBounds(320, 220, 100, 100);
label1_3.setBounds(420, 220, 100, 100);
label1_4.setBounds(520, 220, 100, 100);
label2_0.setBounds(120, 320, 100, 100);
label2_1.setBounds(220, 320, 100, 100);
label2_2.setBounds(320, 320, 100, 100);
label2_3.setBounds(420, 320, 100, 100);
label2_4.setBounds(520, 320, 100, 100);
label3_0.setBounds(120, 420, 100, 100);
label3_1.setBounds(220, 420, 100, 100);
label3_2.setBounds(320, 420, 100, 100);
label3_3.setBounds(420, 420, 100, 100);
label3_4.setBounds(520, 420, 100, 100);
label4_0.setBounds(120, 520, 100, 100);
label4_1.setBounds(220, 520, 100, 100);
label4_2.setBounds(320, 520, 100, 100);
label4_3.setBounds(420, 520, 100, 100);
label4_4.setBounds(520, 520, 100, 100);
frame.getContentPane().add(label0_0);
frame.getContentPane().add(label0_1);
frame.getContentPane().add(label0_2);
frame.getContentPane().add(label0_3);
frame.getContentPane().add(label0_4);
frame.getContentPane().add(label1_0);
frame.getContentPane().add(label1_1);
frame.getContentPane().add(label1_2);
frame.getContentPane().add(label1_3);
frame.getContentPane().add(label1_4);
frame.getContentPane().add(label2_0);
frame.getContentPane().add(label2_1);
frame.getContentPane().add(label2_2);
frame.getContentPane().add(label2_3);
frame.getContentPane().add(label2_4);
frame.getContentPane().add(label3_0);
frame.getContentPane().add(label3_1);
frame.getContentPane().add(label3_2);
frame.getContentPane().add(label3_3);
frame.getContentPane().add(label3_4);
frame.getContentPane().add(label4_0);
frame.getContentPane().add(label4_1);
frame.getContentPane().add(label4_2);
frame.getContentPane().add(label4_3);
frame.getContentPane().add(label4_4);
我为此添加了一些标签。现在,label4_4 有约束。当我删除 label4_4 时,label4_3 得到了约束。当我也删除了 label4_3 时, label4_2 得到了它!为什么会这样?
【问题讨论】:
标签: java swing constraints jlabel