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

Тема в разделе "Java", создана пользователем Timon, 23 авг 2011.

  1. Timon

    Timon Гость

    Есть 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());
    }
     
  2. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Не совсем понятно, что в итоге должно получиться. Пользователь жмет сначала jbutton1 или jbutton2, после чего нажимает btntool1 и, в зависимости от того, какая JButton перед этим была нажата, выполняется то или иное действие, так? Если да, то можно просто в классе фрейма завести некий флаг, который будет выставляться или сбрасываться в зависимости от того, какая кнопка была кликнута. В обработчике btntool1'а просто этот флаг учитывать.
    В грубом приближении, выглядеть будет как-то наподобие:
    Код (Text):
    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 {
    ...
    }              
    }
    });
    }
    }
     
Загрузка...

Поделиться этой страницей