Skroty klawiaturowe

0

jak zrobic skroty klawiaturowe bez uzywania jmenuBar

0

Czy chodzi ci o uruchomienie listenera za pomocą np. ctrl+z?

0

tak chodzi mi wlasnie o tego typu skoty
"Ctrl+Z" itp

0

Wzmianka do administratorów tego forum. Mam juz napisaną odpowiedź na ten post, niestety niemoge go opublikowac bo wyskakiwał mi komunikat:

Forbidden
You don't have permission to access /posting.php on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Moge wam wysłać to jakos na maila a Wy to umieścicie na Forum.

0
samos napisał(a)

Wzmianka do administratorów tego forum. Mam juz napisaną odpowiedź na ten post, niestety niemoge go opublikowac bo wyskakiwał mi komunikat:

Forbidden
You don't have permission to access /posting.php on this server.
Niestety - to nie wina systemu Coyote czy też nasza tylko dziwnej konfiguracji serwera. Poczytaj o tym tu. Jeśli w poście jest jakiś wyraz oznaczający język programowania (najczęstsza przyczyna) to spróbuj go zamienić, np: Pascal -> Pascal - wyświetlone to zostanie normalnie: Pascal

0

A więc postaram sie odpowiedziec:).
Jako ze samemu jeszcze nie zagłębiałem sie w to zagadnienie przepisze(ale nie słowo w słowo) ważniejsze(wg. mnie) czesci rozdziału z ksiażki. Zaczynamy.

Aby przyporządkować działania skrótom klawiszowym, musisz utworzyc obiekty klasy KeyStroke. Klasa ta zajmuje sie opisem używanego klawisza. Aby utworzyć obiekt typu KeyStroke, nie używasz konstruktora, lecz metody statycznej getKeyStroke. Określasz wirtualny kod klawisza oraz flagi(czyli np. czy wciśnięty był równocześnie klawisz SHIFT lub CONTROL):

KeyStroke ctrlNKL = KeyStroke.getKeyStroke(KeyEvent.VK_N, Event. CTRL_MASK);
Istnieje tez metoda pozwalająca opisywać skrót klawiaturowy za pomocą łańcucha:
KeyStroke ctrlNKL = KeyStroke.getKeyStroke("ctrl N");
Każdy obiekt typu JComponent posiada 3 mapy wejścia, które określaja działania na podstawie obiektów KeyStroke.
WHEN_FOCUSED, WHEN_ANCESOR_OF_FOCUSED_COMPONENT, WHEN_IN_FOCUSED_WINDOW
Te 3 mapy odpowiadają 3 różnym warunkom. Mapę komponentu otrzymujesz dzięki metodzie getInputMap np.
InputMap mapaw = panel.getInputMap(JComponent.WHEN_FOCUSED);
Klasa InputMap nie mapuje obiektów KeyStroke na obiekty Action beypođrednio. InputMap tworzy obiekt innej klasy, a dopiero kolejna mapa, implementowana przez klasę ActionMap, mapuje te obiekty na obiekty działań. W ten sposóbłatwiej jest rozdzielać działąnia pomiędzy skróty klawiaturowe pochodzące z różnych map wejściowych. Tak wiec kazdy komponent posiada 3 mapy wejścia i jedną mape działania. Aby powiązać naciśniecie klawisza z wykonaniem działąnia, napisz:

mapaw. put(Key Stroke.getKey Stroke("ctrl Z"), "panel. żółty");
Action Map mapad = panel. getAction Map();
ma pad.put("panel. żółty", dzialanie Zoltego);

(w tym kodzie usuń spacje, bez nich wyskakiwal błąd)

Zazwyczaj, aby opisać działąnie puste, używa się łańcucha "none". W ten sposób możemy łatwo dezaktywowaćklawisz:
mapaw.put(KeyStroke.getKeyStroke("ctrl C"), "none");

To tyle. Mam nadzieje ze zrozumiałeś :), a moje przepisywanie nieposzło na marne:)

Wkleiłbym cały kod pokazujacy to w praktyce ale neistety niemoge(pojawia sie ten komunikat). Jezeli chcesz to podaj maila a wysle ci ten kod

0

Gdyby lord_zet był [political correctnes]trochę bardziej...spostrzegawczy[/political correctnes] to po przeczytaniu odpowiedzi w swoim wątku:
http://4programmers.net/Forum/viewtopic.php?id=75655
sam by na to wpadł, żeby użyć action-map + keystroke :-P
Czyż nie?

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