Tworze coś podobnego a mianowicie kalkulator `ala widowsowy. Stworzyłem już całe GUI i teraz przechodzę do oprogramowania działania i mam pytanie jak przechwytywać zdarzenia od elementów JButton zrobiłem tak:
JButton but1 = new JButton("1");
but1.addActionListener(act);
oczywiście zaimplementowany ActionListener i oprogramowane actionPerformed. Jednak ustawienie słuchaczy do każdego przycisku zajmuje trochę linijek kodu :/ Znalazłem też w sieci inny sposób (krótszy):
w konstruktor wrzucony:
addWindowListener(new WindowHandler());
i ustawienie nasłuchiwania zdarzeń na całe okno // jak wynika z komentarzy oraz dodanie takiej funkcji
public boolean action(Event zdarzenie, Object argument){
// tu wszystkie obliczenia
}
oraz:
class WindowHandler implements WindowListener
{
public void windowClosing(WindowEvent event)
{
System.exit(0);
}
public void windowClosed(WindowEvent event){}
public void windowOpened(WindowEvent event){}
public void windowIconified(WindowEvent event){}
public void windowDeiconified(WindowEvent event){}
public void windowActivated(WindowEvent event){}
public void windowDeactivated(WindowEvent event){}
}
cały kod oczywiście działa ale z jednym mankamentem i tego też dotyczy moje pytanie. Ten drugi przykład nie jest robiony na komponentach swingowych i jak zmienie, ustawie np Button na JButton to nie działa zdarzenie od tego przycisku :/ why ??