另一个类中的动作侦听器-Java

用户455318:

可能有两堂课,而在一堂课中

arrayButtons[i][j].addActionListener(actionListner);

在另一个

ActionListener actionListner = new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            for (int j = 0; j < arrayButtons.length; j++) {
                for (int i = 0; i < arrayButtons[j].length; i++) {
                    if (arrayButtons[j][i] == e.getSource()) {

                        if ((gameNumber == 2) && (playHand.getNumberOfCards() == 0)) {
                            if (player[j].getCard(i).getSuit() == Suit.HEARTS.toString() && player[j].hasSuitBesideHearts())
                                //second game
                                messageOnTable("xxx");

                            else{
                                arrayButtons[j][i].setVisible(false);
                                test[j].setIcon(player[j].getCard(i).getImage());
                                pnCardNumber[j].setText(Integer.toString(player[j].getCard(i).getNumber()));
                                pnCardName[j].setText(player[j].getCard(i).toString());
                                pnCardSuit[j].setText(player[j].getCard(i).getSuit());

                                playHand.addCard(player[j].getCard(i), j);

                                player[j].removeCard(i);

                            }

                        }

}

//更多原因是因为我需要将按钮(摆动)分离到动作监听器

我该怎么办?

谢谢

戈兰·乔维奇(Goran Jovic):

不仅可以将这两个部分分开,而且还建议这样做(请参阅MVC模式-非常有关分离屏幕控件(如按钮)和程序逻辑)

我想到的最简单的方法是编写一个实现ActionListener接口的命名类,如下所示:

public class SomeActionListener implements ActionListener{

    private JTextField textField1;
    private JComboBox combo1;
    private JTextField textField2;
    //...

    public SomeActionListener(JTextField textField1, JComboBox combo1, 
                                          JTextField textField2){
        this.textField1=textField1;
        this.combo1=combo1;
        this.textField2=textField2;
        //...
    }

    public void actionPerformed(ActionEvent e) {
        //cmd
    }

}

然后将其添加到您的按钮:

ActionListener actionListener = new SomeActionListener(textField1, combo1, textField2);
someButton.addActionListener(actionListener);

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java:使用动作侦听器在该类的对象的另一个类中调用函数

如何从Java中另一个类的事件侦听器中检索值?

Java:删除另一个类中的活动键侦听器

Java-通过NetBeans在另一个类中为按钮添加侦听器

一类JAVA中的窗口侦听器和动作侦听器

如何使用 Java 中的键侦听器将图像绘制到 JDialog 窗口中的另一个图像上?

Java中的动作侦听器等待

在另一个类的Jbutton数组上使用动作侦听器/ StackOverflowError

java从另一个类加载器加载的类中访问资源文件

如何编写一个键侦听器来跟踪Java中的所有击键?

从Java中的另一个类访问变量

从Java中的另一个类获取数组

调用Java中的另一个类

从Java中的另一个类存储数组

从Java中的另一个类访问变量

Java动作侦听器:实现vs匿名类

如何使一个Java类仅对包中的另一个类可用

无法从java中的另一个类访问一个类

如何访问Java中另一个类的另一个方法内的类中的方法

从另一个Java文件中的一个文件扩展Java类

从 Java 中的 JPopupMenu 动作侦听器获取目标

如何使用java中另一个类的另一个面板更改面板的内容

使用Java中另一个类的另一个方法返回用户输入

如何从另一个.java文件中的另一个类调用方法?

Java中,硒 - 属性读取器类 - 如何字符串传递给另一个班

如何将标头从控制器发送到 Java 中的另一个类

如何将Java类(从一个包中)继承到另一个类(在另一个包中)

数组和动作侦听器Java

Java Hangman项目:动作侦听器