几个JButton将值存储在一个数组中?

时间:2016-04-05 08:11:48

标签: java

我正在制作一个乐透计划,我想要的是在屏幕上有几个JButton,当点击存储数组中的数字时。这是我的代码到目前为止,我是初学者所以我不知道接下来该做什么,任何帮助表示赞赏。谢谢!

    b1 = new JButton();
    b1.setLocation (5, 5);
    b1.setSize (50, 50);
    //b1.setText ("1");
    b1.setIcon(new ImageIcon("jedan.png"));
    c.add(b1);

    b2 = new JButton();
    b2.setLocation (60, 5);
    b2.setSize (50, 50);
    b2.setText ("2");
    c.add(b2);        

    b3 = new JButton();
    b3.setLocation (115, 5);
    b3.setSize (50, 50);
    b3.setText ("3");
    c.add(b3);

1 个答案:

答案 0 :(得分:0)

您可能最简单的方法是创建ArrayList

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

然后,只要按下按钮,您就需要执行向数组添加数字的操作。您需要在此处创建ActionListener

我建议创建一个实现ActionListener接口的内部类,以便您可以在每个按钮中重复使用此类。

// This code should go within the same class that you declare your ArrayList
private class ButtonClickListener implements ActionListener {

    // This is the method that will be called when a button is clicked.
    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() instanceof JButton) {
            lotteryNumbers.add(Integer.parseInt(((JButton)e.getSource()).getText()));
        }
    }
}

然后,您只需要实例化此类的实例,并将其作为ActionListener添加到所有按钮中。

ActionListener buttonClickListener = new ButtonClickListener();

b1.addActionListener(buttonActionListener);
b2.addActionListener(buttonActionListener);
b3.addActionListener(buttonActionListener);

注意 :为此,我假设每个按钮上的文字对应于您要添加到阵列的彩票号码。我还假设按钮文本只包含可以转换为整数的数字字符。