JTable blokada skrótów (home, end)

0

Szanowni forumowicze,
Mam napisane keyEventy na klawisze home i end. Ale wykonują mi się też domyślne ich funkcje. Nie wiem jak je zablokować, getInputMap().size zwraca zero, gdzie to jest?
Nadpisywałem keyPressed, keyReleased i nic.

Dziękuję,
A.

1

Nie wiem czy dobrze zrozumiałem, ale twoim problemem mogą być wcześniej zainstalowane (domyślnie?) listenery.
Istnieje sobie metoda KeyListener[] Component.getKeyListeners(), dzięki której dostaniesz listą wszystkich aktualnych listenerów na komponencie. Następnie za pomocą removeKeyListener() usuwasz sobie wszystkie i dodajesz swój (swoje). Coś w tym stylu:

for(KeyListener listenerNonGrata: component.getKeyListeners())
	component.removeKeyListener(listenerNonGrata);
component.addKeyListener(słusznyListener);

Jeżeli robiłbyś to z wnętrza klasy, którą zmieniasz, to component. zamieniasz na this. lub nic.

0

A właśnie cała "ciekawość" tego problemu polega na tym, że jak usunę wszystkie keyListenery i cały ActionMap to złośliwy home i end nadal działają.

for(KeyListener keyListener : myJXTable1.getKeyListeners()) {
            myJXTable1.removeKeyListener(keyListener);
        }

for(Object key : myJXTable1.getActionMap().allKeys()) {
            myJXTable1.getActionMap().remove(key);
        }

Powyższy kod usuwa mi wszystkie moje keyEventy, ale nie te 2 klawisze.
Co to może być? Po prostu zwariować z tym można. Przeszukuję dokumentację i nic nie ma:/ Nawet nie wiem gdzie szukać jak to nie listener... Tzn. musi być, ale widocznie jakiś "ukryty"?

0

Podstawowe pytanie - co się dzieje po naciśnięciu Home lub End?

0

Ano tak:-)
home - przechodzi do 1 kolumny zaznaczonego wiersza.
end - przechodzi do ostatniej kolumny zaznaczonego wiersza.

Sorki...

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