如何在 for 循环中使用 Map<String, JLabel>

可以用 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

阿兹罗

您可以通过将所有按钮添加到列表中来实现您的要求,然后将它们放入地图中,如下所示:

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));
    }
}

但它不会更容易使用,您可以直接使用列表,取决于您想做什么

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章