可以使用for循环执行此操作吗?
public class MainScreen extends javax.swing.JFrame {
private final Map<String, JButton> buttonMap = new HashMap<String,JButton>();
public MainScreen() {
buttonMap.put("utilaj1", utilaj1);
buttonMap.put("utilaj2", utilaj2);
buttonMap.put("utilaj1", utilaj1);
buttonMap.put("utilaj2", utilaj2);
//......................
buttonMap.put("utilaj20", utilaj20);
}
}
类似的东西:
public class MainScreen extends javax.swing.JFrame {
private final Map<String, JButton> buttonMap = new HashMap<>();
public MainScreen() {
for(i = 1; i <= 20; i++){
buttonMap.put("utilaj1", utilaj1);
buttonMap.put("utilaj"+i, utilaj+i);
}
}
}
这不起作用,因为utilaj1
... utilaj20
这是一个JButton
答案 0 :(得分:1)
您可以通过添加列表中的所有按钮来实现您的要求,然后将它们放在地图中,如下所示:
private final Map<String,JButton> buttonMap = new HashMap<String,JButton>();
private List<JButton> buttons = Arrays.asList(utilaj1, ..., utilaj20);
public MainScreen() {
for(i=1;i<=20;i++){
buttonMap.put("utilaj"+i, buttons.get(i));
}
}
但它不会更容易使用,你可以直接使用List,取决于你想做什么