我试图用整数来调用Label。如果N = 1,则返回标签,如果N = 2,则返回label2。我尝试了地图,但我无法正确思考。
Map<Integer, String> box = new HashMap();
{
box.put(1, "label");
box.put(2, "label2");
}
JLabel label = new JLabel();
ImageIcon image1 = new ImageIcon("BlackKnight.png");
label.setIcon(image1);
JLabel label2 = new JLabel();
ImageIcon image2 = new ImageIcon("BlackBishop.png");
label2.setIcon(image2);
尝试提供伪代码:
输入N
输出第N个标签名称
答案 0 :(得分:3)
您可以使用Map<Integer, JLabel>
Map<Integer, JLabel> map = new Hashmap<>();
JLabel first = new JLabel("I'm first");
JLabel second = new JLabel("I'm second");
map.put(1, first);
map.put(2, second);
// Will print all the texts from the JLabels
for (JLabel j : map) {
System.out.println(j.getText());
}
我个人原本会使用List<JLabel>
,因为列表是有序的。
答案 1 :(得分:0)
如果您只想要标签的名称,只需拨打:Map<Integer, JLabel> box = new HashMap();
即可获取label1的名称,或拨打box.put(1, label);
作为第n个标签。
如果您想真正获得整个JLabel,可以将地图更改为:box.put(5, label5);
并使用box.get(n)
和{{1}}等,以后可以使用相同的{{{1}} 1}}上述方法。
在后一种情况下,您必须首先创建标签,然后才能将它们放入地图中