Возврат слушателя действия JButtons, чтобы его мог использовать другой класс - PullRequest
1 голос
/ 23 января 2012

Мне нужно послушать нажатие кнопки J, но реализация, которая у меня есть, не кажется правильной.В классе, который содержит JButton, у меня есть

public JButton button() {
    return button;
}

В классе (назовите его, listenerClass) II слушатель кнопки

buttonClass.button().addActionListener(new buttonActionListener());

public class buttonActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
       //local method calls
    }
}

Мне нужно, чтобы слушатель был вlistenerClass потому что этот класс содержит логику и методы, которые мне нужны.Я считаю неправильным публиковать весь JButton.Я не уверен, как просто опубликовать кнопки actionListener, тогда я могу делать то, что мне нравится в listenerClass.buttonClass ничего не знает о listenerClass

Заранее спасибо:)

1 Ответ

2 голосов
/ 23 января 2012

Одним из способов достижения этого является добавление пользовательских методов к buttonClass, которые делегируются кнопке. Например, вы можете добавить метод с именем addSomethingHappenedListener, который будет внутренне вызывать `button.addActionListener ', и вызывающая сторона не должна знать о деталях.

Таким образом, вызывающей стороне даже не нужно даже знать, что это просто кнопка, что произошло определенное событие.

...