#java #swing #actionlistener
#java #swing #actionlistener
Вопрос:
я видел пример использования ActionListener в коде путем реализации ActionListener. но здесь я хочу использовать функциональность ActionListener, используя ссылку на ActionListener.
JButton createButton(){
ActionListener al;
JButton button = new JButton();
button.setBounds(130, 100, 100, 40);
button.setText("aaa");
button.setSize(100, 40);
button.setLayout(null);
frame.add(button);
return button;
}
посмотрите на ссылку ActionListener здесь . как использовать эту ссылку на кнопку для прослушивания события на кнопке
Комментарии:
1. ой … ключ, помимо того факта, что ваш код неполон, в чем ваш вопрос? Однако вам все равно понадобится класс, который реализует ActionListener .
2. посмотрите на ссылку ActionListener здесь . как использовать эту ссылку на кнопку для прослушивания события на кнопке.
3. Я не знаю, о чем вы спрашиваете.
4. Вы спрашиваете о том, как добавить прослушиватель действий к кнопке? Если да, то вы ознакомились с Javadocs или каким-либо приличным руководством по Swing?
5. как прослушать событие кнопки с помощью переменной типа ActionListener?
Ответ №1:
JButton createButton(){
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
// run code;
}
};
JButton button = new JButton();
button.setBounds(130, 100, 100, 40);
button.setText("aaa");
button.setSize(100, 40);
button.addActionListener(al);
frame.add(button);
return button;
}
или
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//run code;
}
} );
По сути, это точно то же самое, что использовать ActionListener для реализации содержащего класса: вы предоставляете реализацию и настраиваете свою кнопку для ее прослушивания.
Комментарии:
1. есть ли какой-либо способ, которым я могу создать свой метод createButton (), объявив ссылочные переменные или экземпляры ActionListener , ActionEvent в методе createButton() и напрямую вызвать метод actionPerformed без переопределения (полностью императивный стиль / никаких методов в методе createButton ())
2. что я понимаю: «jbutton вызвал метод addActionListener, в котором мы передаем новый экземпляр ActionListener, который имеет выполненный абстрактный метод actionPerformed, который мы должны переопределить» …. теперь, что я хочу сказать: можем ли мы использовать ActionListener здесь, не создавая новый экземпляр, но создавая ссылку. такой параметр, как ActionListener al = «Назначить здесь любой существующий тип» . и т.д. Затем дальнейшие назначения до тех пор, пока событие button не будет прослушано в любом месте, где мы хотим. означает все в выражениях императивного стиля … не переопределяющими методами.
3. что вы подразумеваете под «Назначить любой существующий тип здесь»? Если вы объявляете это как ActionListener, это должен быть ActionListener, вы не можете назначить ему строку или ArrayList . Также: что вы подразумеваете под: «все в утверждениях императивного стиля»?
4. означает, что перед объявлением ActionListener var. определенно, у нас есть что-то, что будет присвоено ActionListener, или нам нужно присвоить ActionListener чему-то уже существующему для дальнейшей работы… обязательно: объявляйте переменные, присваивайте значения или ссылку. для Var (ов) вызывайте методы api непосредственно в ref. var (ы) … в принципе, я хочу написать код, подобный неструктурированному стилю программирования / стилю do goto / упорядочивать типы напрямую, чтобы что-то делать без использования ненужного ооп…
5. … ненужный ооп? Написание кода, который вы хотите запустить, не является «излишним». Вам нужен реализованный экземпляр ActionListener для добавления в ваш JButton, как я показал в своем ответе.