Jak zrobić aby w czasie kiedy button jest wciśnięty obiekt String był ustawiony "true" a po zwolnieniu buttona ten obiekt miał "false"?
Dodaj ChangeListenera.
ok, metodę wywoływaną stateChanged mam, tylko jak sprawdzić czy przycisk został wciśnięty czy zwolniony jeśli zdarzenie zostanie wywołane?
Dodaj pole logiczne np. pressed. Na początku pressed jest równe false, metoda stateChanged powinna zawierać kod:
pressed = !pressed;
nie wiem za bardzo jak to na ChangeListener ma działać ale zrobiłem to trochę inaczej:
public void stateChanged(ChangeEvent e) {
Object source = e.getSource();
if(source == modelForward)
{
if(modelForward.isPressed())
Objekt1.setValue("true");
else
Objekt1.setValue("false");
}
if(source == modelBackward)
{
if(modelForward.isPressed())
Objekt2.setValue("true");
else
Objekt2.setValue("false");
}
}
obiekt modelForward i modelBackward to obiekty typu ButtonModel. Nadal jednak głowie się z problemem takim że kiedy najeżdżam myszką na przycisk, bądź przesuwam myszkę poza przycisk to metody setValue wywołują się niepotrzebnie bo zgłaszane jest wtedy wydarzenie. Czy można temu jakoś uniknąć i tylko na zwolnienie przyciskiem myszy wywoływać Objekt2.setValue()?
Jeśli ma działać tylko na mysz, to najprostsze jest chyba takie rozwiązanie:
button.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent me)
{
Objekt2.setValue("true");;
}
public void mouseReleased(MouseEvent me)
{
Objekt2.setValue("false");;
}
});
dzieki ;) jak Cie kiedys spotkam to stawiam piwo ;)