【问题标题】:How can I access ArrayList from another class?如何从另一个类访问 ArrayList?
【发布时间】:2016-11-15 21:04:19
【问题描述】:

我在一个类中创建了一个数组列表,在单击一个 JButton 并切换到另一个面板和另一个类后,我希望能够访问它并生成一个随机数。我该怎么做?

 ArrayList<Integer> hiraganaArray = new ArrayList<Integer>();

 OCheckBox.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            if(e.getStateChange() == ItemEvent.SELECTED) {
                hiraganaArray.add(1);
                hiraganaArray.add(2);
                hiraganaArray.add(3);
                hiraganaArray.add(4);
                hiraganaArray.add(5);
            }
            else {
                hiraganaArray.removeAll(Arrays.asList(1));
                hiraganaArray.removeAll(Arrays.asList(2));
                hiraganaArray.removeAll(Arrays.asList(3));
                hiraganaArray.removeAll(Arrays.asList(4));
                hiraganaArray.removeAll(Arrays.asList(5));
            }
        }

 startButton = new JButton("Start");
    startButton.setPreferredSize(new Dimension(100, 40));
    gbc.gridx = 3;
    gbc.gridy = 13;
    add(startButton, gbc);

    startButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            layout.show(panelCont, "6");
        }
    });

添加后效果很好

  System.out.println(hiraganaArray.get(r.nextInt(hiraganaArray.size())));

到 JButton 的动作监听器,但相同的代码在另一个类中使用时不起作用。

【问题讨论】:

    标签: java swing arraylist random integer


    【解决方案1】:

    我想通了!我需要将第一堂课的代码更改为:

    static ArrayList<Integer> hiraganaArray;
    public ArrayList<Integer> getHiraganatArray() {
        return hiraganaArray;
    }
    

    第二类中的代码为:

    System.out.println(HiraganaClass.hiraganaArray.get(r.nextInt(HiraganaClass.hiraganaArray.size())));
    

    【讨论】:

    • 您真的应该了解什么是静态变量。您的“解决方案”可能会给您带来很多问题。
    • 它似乎可以正常工作而不会引起任何问题。你能详细说明一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    相关资源
    最近更新 更多