Как добавить ActionListener в JButton в Java
129524 просмотра
4 ответа
private JButton jBtnDrawCircle = new JButton("Circle");
private JButton jBtnDrawSquare = new JButton("Square");
private JButton jBtnDrawTriangle = new JButton("Triangle");
private JButton jBtnSelection = new JButton("Selection");
Как добавить слушателей действий к этим кнопкам, так что из основного метода я могу позвонить actionperformed
им, поэтому, когда они будут нажаты, я могу вызвать их в своей программе?
Ответы (4)
45 плюса
Два пути:
1. Реализовать ActionListener в своем классе, а затем использовать jBtnSelection.addActionListener(this);
Позже, вы должны определить menthod, public void actionPerformed(ActionEvent e)
. Однако делать это для нескольких кнопок может сбивать с толку, потому что actionPerformed
метод должен будет проверить источник каждого события ( e.getSource()
), чтобы увидеть, к какой кнопке он пришел.
2. Используйте анонимные внутренние классы:
jBtnSelection.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
selectionButtonPressed();
}
} );
Позже вам придется определить selectionButtonPressed()
. Это работает лучше, если у вас несколько кнопок, потому что ваши вызовы для отдельных методов обработки действий находятся прямо рядом с определением кнопки.
Второй метод также позволяет вам напрямую вызвать метод выбора. В этом случае вы можете вызвать, selectionButtonPressed()
если произойдет и другое действие, например, когда таймер выключается или что-то в этом роде (но в этом случае ваш метод будет назван чем-то другим, может быть selectionChanged()
).
7 плюса
Лучше всего пересмотреть учебники Java Swing , в частности учебник по кнопкам .
Короткий фрагмент кода:
jBtnDrawCircle.addActionListener( /*class that implements ActionListener*/ );
Автор: Alex B
Размещён: 12.11.2008 06:46
1 плюс
Я не полностью понимаю, но чтобы добавить прослушиватель действий, вы просто вызываете addActionListener (из кнопки Abstract). Если это не полностью ответит на ваш вопрос, можете ли вы предоставить более подробную информацию?
Автор: AdamC Размещён: 12.11.2008 06:480 плюса
idk, если это работает, но я сделал имена переменных
public abstract class beep implements ActionListener {
public static void main(String[] args) {
JFrame f = new JFrame("beeper");
JButton button = new JButton("Beep me");
f.setVisible(true);
f.setSize(300, 200);
f.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//insert code here
}
} );
}
}
Автор: Ronald Ortiz Размещён: 11.11.2018 10:34Вопросы из категории :
- java В чем разница между int и Integer в Java и C #?
- java Как я могу определить IP моего маршрутизатора / шлюза в Java?
- java Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- java Как округлить результат целочисленного деления?
- swing Java Swing: отображение изображений внутри Jar
- swing Как реализовать перетаскиваемые вкладки с помощью Java Swing?
- swing Можно ли отобразить компоненты Swing в JSP?
- swing Как добавить ActionListener в JButton в Java
- user-interface Что такое MVP и MVC и в чем разница?
- user-interface Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?
- user-interface Прототипирование GUI с клиентом
- user-interface Как заставить кнопку выглядеть так, как будто она нажата?
- jbutton Как получить цвет фона JButton по умолчанию?
- jbutton Почему setPreferredSize не меняет размер кнопки?
- jbutton Java / Swing: низкопрофильная высота кнопки?
- actionlistener Слушатель конца потока. Джава
- actionlistener Как добавить слушатель действий, который слушает несколько кнопок
- actionlistener Richfaces: поддержка a4j (action, actionListener) для inputText внутри dataTable