如何获取特定阵列列表项

时间:2016-09-01 20:58:33

标签: java arrays jpanel jbutton

从数组列表中选择我有一点问题。我正在编写一些代码,以便能够在一个圆圈中修复10个JButton,我做对了,但是然后.....我想在每个按钮上设置一个actionListener,但是我没有得到它,所有按钮都继承了一个所需的操作。我如何具体说明,......这是我的代码....提前致谢!

<form>
    <field name="cym_tag"/>
    <field name="modules" widget="one2many_tag"/>
</form>

3 个答案:

答案 0 :(得分:2)

问题在于表达

if (quest.equals(points.get(5)));

什么都不做。我想它应该像这样重写

if (quest.equals(points.get(5))) {
    String c = "Hello!";
    JOptionPane.showMessageDialog(null, c);
}

答案 1 :(得分:0)

我理解这个问题的方法是你有多个按钮,你希望每个按钮都有自己与之相关的动作。有几种方法可以做到这一点。您可以根据要创建的按钮为每个JButton创建一个新的ActionListener。

您还可以在ActionListener中创建一个大的case / switch或if / else,它由选择的按钮决定。为此,您可以为ActionEvent对象调用getActionCommand()函数。

quest.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent a) {

            if (a.getActionCommand().equals("Question 1"))
            {
                String c = "Hello!";
                JOptionPane.showMessageDialog(null, c);
            }
            else if(a.getActionCommand().equals("Question 2"))
            {
                //have it do something else
            }
            //and so on so forth

        }
    });

答案 2 :(得分:0)

您需要重新考虑整个设计。你有这一行:

if (quest.equals(points.get(5))) {

但是points是一个包含Point对象的列表; points.get(5)返回一个Point。 任务是一个JButton。 JButton实例如何等于Point实例?