Dziwna sprawa z obsługą myszki.

0

Dziwna sprawa z obsługa myszki. Używam tego kodu:

public void myszka()
    { table.addMouseListener(new MouseAdapter()
            {
           public void mouseClicked(final MouseEvent e)
                {                                                                        // kliknieto 2x lewym przyciskiem myszki!
                if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 1)
                    {
                    JTable tabela=(JTable)(e.getSource());
                    index_do_usuniecia=tabela.getSelectedRow();
                    index_do_usuniecia=tabela.convertRowIndexToModel(index_do_usuniecia);
                    idu=dane[index_do_usuniecia][0];

                    for(int i=0;i<zlecenia.size();i++)
                        {
                         if(idu.equals(zlecenia.get(i)._numer)){index_do_usuniecia=i;}
                        }
                    pole_odpowiedz.setText(zlecenia.get(index_do_usuniecia)._odpowiedz);
                    pole_problem.setText(zlecenia.get(index_do_usuniecia)._problem);
                  }      
                //--------------------------------------------------------------
                };
            });
      }

jak widać przypisana jest do tabelki. Niby dział i jest ok.

Teraz problem wydaje mi sie to smieszne ale testoałem na 3 komputerach i tak jest. Gdy klikne mocno przyciskapodswital mi sie rekord w tabeli k przypisuje sie ten index index_do_usuniecia=i; czyli wszystko jest ok

Ale gdy klikne przycisk delikatnie to podswietla mi sie rekord w tabeli ale index_do_usuniecia=i; juz sie nie przypisuje.
Wydaje mi sie to bez sensu ale tak jest. Co moge na to poradzic? mam przez to duzo problemów Moze jakś szybkos klikniecia?

0

zwróć uwagę, czy przy tej drugiej sytuacji na pewno robisz 'kliknięcie', a nie samo pressed i released. Kliknięcie nastąpi jedynie jeżeli pressed i released nastąpią w tym samym (dokładnie) miejscu na ekranie. Możliwe, że przy tym 'lekkim' naciśnięciu przesuwasz kursor o kilka pikseli i nie ma już clicked wyzwolonego (samo pressed i released, które podswietlają rekord). Inna sytuacja raczej nie wchodzi w grę, w myszce nie ma czujnika 'siły naciśnięcia', na pewno nie w standardowej :). Tylko 0/1.

0

Pewnie masz racje, ale programu uzywa kilka osób na kilku komputerach nie moge sprawdzci wszysktich ;) Czy można jakoś zaminić Click np na Press? abym miał po problemów? Nie spotkałem sie nigdy z czymś takim ;/

0

Ok juz zmieniłem Dzięki za podpowiedz :)

0

To jeszcze się podziel jak to zrobiłeś... ;]

0

Zamieniłem funkcje public void mouseClicked(MouseEvent e) na public void mousePressed(MouseEvent e) i po sprawie ;)

http://download.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

Nic trudnego ale bez podpowiedzi dalej bym sie meczył Jeszcze raz dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1