📌  相关文章
📜  使用来自另一个Java类的 actionPerformed(1)

📅  最后修改于: 2023-12-03 15:22:24.789000             🧑  作者: Mango

使用另一个Java类中的 actionPerformed 方法

在Java中,我们可以使用不同的方式来实现交互式应用程序。其中一种方式就是使用Swing库,它提供了丰富的GUI组件。我们可以通过为这些组件添加监听器来使其与用户交互。在此过程中,我们需要实现一个ActionListener接口,并且实现其中的actionPerformed方法。然而,如果我们有许多组件,每个组件都需要实现一个单独的监听器,这显然是不现实的。

一种更好的方法是通过在一个类中实现所有的监听器,然后将该类的实例传递给其他组件以进行重用。在这个类中,我们可以实现所有的逻辑,以便处理不同的事件。我们还可以使用相同的逻辑来处理同一组件上发生的多个事件。

让我们假设我们有两个组件:按钮和文本域。现在我们希望当用户单击按钮时,文本域会显示一条消息。我们可以通过以下步骤来实现:

1.创建一个名为ButtonListener的Java类,并将其实现为ActionListener接口。这意味着我们需要实现actionPerformed方法。

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JTextField;

    public class ButtonListener implements ActionListener {
        private JTextField textField;

        public ButtonListener(JTextField textField) {
            this.textField = textField;
        }

        @Override
        public void actionPerformed(ActionEvent e) {
            textField.setText("Hello World!");
        }
    }

2.在我们的主应用程序中,实例化一个JButton和JTextField组件,并将ButtonListener实例传递给按钮。

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JTextField;

    public class Main {
        public static void main(String[] args) {
            JFrame frame = new JFrame("Hello World!");

            JTextField textField = new JTextField();
            textField.setBounds(50, 50, 200, 30);

            JButton button = new JButton("Click me!");
            button.setBounds(50, 100, 200, 30);

            ButtonListener buttonListener = new ButtonListener(textField);
            button.addActionListener(buttonListener);

            frame.add(textField);
            frame.add(button);

            frame.setSize(300, 200);
            frame.setLayout(null);
            frame.setVisible(true);
        }
    }

在上面的代码片段中,我们首先创建ButtonListener类并实现ActionListener接口。该类有一个文本域成员变量,当用户单击按钮时,它会将“Hello World!”文本设置到该文本域中。我们然后在主方法中创建一个JFrame、JTextField和JButton,将ButtonListener的实例传递给按钮。当一个用户单击按钮时,它将调用ButtonListener中的actionPerformed方法,并且该方法将在文本框中显示“Hello World!”字符串。

因此,我们可以看到,使用另一个Java类中的 actionPerformed 方法是一种更好的方法,这种方法可以帮助我们在应用程序中重复使用代码,并且使代码更具可读性和可维护性。