Как определить какой Jbutton была нажата

  • Автор темы Timon
  • Дата начала
T

Timon

#1
Есть jbutton1, jbutton2 в jframe и каждый из них направление на другие jframe

И в главной форме есть toolbar с кнопкой btntool1

как мне запустить
btntool1.addActionListener(new EditDataTblWh()); если кнопка jbutton1 была нажата
и как запустить если
btntool1.addActionListener(new EditDataTblInv()); если кнопка jbutton2 была нажата

например
if (jbutton1.clicked ){
btntool1.addActionListener(new EditDataTblWh());
}
else if (jbutton2.clicked ){
btntool1.addActionListener(new TblInv());
}
 

LuMee

Well-known member
02.05.2006
477
0
#2
Не совсем понятно, что в итоге должно получиться. Пользователь жмет сначала jbutton1 или jbutton2, после чего нажимает btntool1 и, в зависимости от того, какая JButton перед этим была нажата, выполняется то или иное действие, так? Если да, то можно просто в классе фрейма завести некий флаг, который будет выставляться или сбрасываться в зависимости от того, какая кнопка была кликнута. В обработчике btntool1'а просто этот флаг учитывать.
В грубом приближении, выглядеть будет как-то наподобие:
Код:
public class MyFrame extends JFrame {
private boolean isButton1Clicked = false;
...

public MyFrame() {
...
jbutton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
isButton1Clicked = true;
}
});

jbutton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
isButton1Clicked = false;
}
});

btntool1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (isButton1Clicked) {
...
} else {
...
}				
}
});
}
}