Рубрики
Без рубрики

Три Способа Добавления списка действий В Java Swing

При создании графического интерфейса интерфейс нуждается в способе прослушивания событий и реагирования на них. Запускаются события… Помеченный как java, swing, руководство.

При создании графического интерфейса интерфейс нуждается в способе прослушивания событий и реагирования на них. События запускаются, когда пользователь взаимодействует с графическим интерфейсом, например, нажимает кнопки и вставляет текст. Одним из таких типов событий в Java Swing является событие ActionEvent. Обычно используемым компонентом, генерирующим событие действия, является JButton, который представляет собой просто кнопку, вызывающую событие при нажатии. В этой статье объясняются три различных способа добавления списка действий в компонент.

Компонент в качестве списка действий

Это происходит, когда сам компонент прослушивает действия. Для этого просто реализуйте интерфейс ActionListener в компоненте, например:

public class ButtonExample extends JButton implements ActionListener {

    public ButtonExample() {
        addActionListener(this);
    }

    public void actionPerformed(ActionEvent ae) {
        //handle event here
    }

}

Таким образом, компоненты, реализующие ActionListener, становятся одновременно источником и слушателем. Вы хотели бы использовать этот метод, если события относительно просты и внутренние (например, не соединяют несколько компонентов).

Этот метод добавления списка действий нарушает принцип Единой ответственности , поскольку компонент отвечает как за создание событий, так и за их обработку.

Внутренний список действий

Этот метод используется, когда вы используете ключевое слово “новый” для создания нового списка действий для каждого компонента.

component.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent ae) {
            //handle event here
        }
});

Эта реализация отлично подходит для простых слушателей, а также отделяет слушателя от компонента. Избегайте этого, если вы пытаетесь добавить списки действий в подкомпоненты, например, в подкомпоненты JPanel. Это может привести к запутанному коду, поскольку каждый компонент создает свою собственную версию списка действий.

Отдельный список действий

Этот метод требует создания отдельного класса, реализующего ActionListener. Компонент, которому нужен этот список действий, просто создает новый экземпляр этого класса и добавляет его.

public class ButtonExample extends JButton {

      public ButtonExample() {
          addActionListener(new ButtonHandler());
      }   
}

public class ButtonHandler implements ActionListener {
      public ButtonHandler() {

      }   

      public void actionPerformed(ActionEvent ae) {
          //handle event here
      }   
}

Это самый чистый способ добавить список действий. Он отделяет компонент от прослушивателя, создает многоразовый прослушиватель, который можно использовать в разных классах, и позволяет осуществлять сложные взаимодействия между компонентами.

Оригинал: “https://dev.to/aussieguy/three-ways-to-add-an-actionlistener-in-java-swing-19h5”