Я пишу довольно большой класс и не хочу публиковать его здесь. Вопрос в следующем: как я могу ссылаться на кнопку, которая была нажата в конструкторе другого класса? Скажем, я хочу отключить его после некоторых действий слушателя. Если слушатель был анонимными или был внутренний классом SomeClass, я бы просто использовать имя переменного, как это:Отключить JButton от слушателя, который находится в отдельном классе
button.setEnabled(false);
Но как я могу это сделать, когда мой слушатель отдельного класса? Пробовал использовать e.getModifiers(). SetEnabled (false) и e.getSource(). SetEnabled (false), не работал.
public class SomeClass extends JPanel {
private JButton button = new JButton("Button");
public SomeClass() {
button.setActionCommand("button");
button.addActionListener(new ButtonListener());
}
public static void main(String[] args) {
// TODO code application logic here
}
}
class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String src = e.getActionCommand();
if (src.equals("button")) {
//some actions here
//then
}
}
}
Да, он сделал работу, спасибо очень много. Тем не менее, мне кажется, что это решение - это своего рода «чит». Интересно, есть ли «официальный» способ сделать это? –
Это не чит, это официальный метод – alex2410