Reakcja na przycisk nawet po minimalizacji - KeyListener

0

witam
pisze program(w swingu) i potrzebuje takiej funkcjonalnosci, zeby nawet po zminimalizowaniu programu po kliknieciu przycisku sie cos stało. Jakby to powiedziec - zeby listener ciagle sluchal, o. Do tej pory mam ustawione alwaysOnTop, probowalem tez z setfocusable ale nic nie dawało. Da rade cos takiego zrobic w ogole ?:P

przy okazji spytam:
jak zrobić, zebym mógł wywołać jakas akcje na kombinacje klawiszy, a nie tylko pojedynczy? np: teraz dziala mi osobno na klawisz alt i klawisz b, a chcialbym zeby zadzialalo na alt+b

pozdrawiam! :)

0
  1. Użytkownik ma zminimalizowane 10 programów, w oknach tych programów jest 69 przycisków. Jak system operacyjny ma poznać, że użytkownik w ogóle kliknął w któryś z tych niewidocznych przycisków i w który konkretnie?
  2. Użyj maski, np
KeyStroke.getKeyStroke('B',InputEvent.ALT_MASK))
0

a moglbym prosic o jakas wskazówke jak to zaimplementowac do KeyListenera zeby działał ten skrót - przyjmijmy ze to alt + b ;p?

edit
a jesli chodzi o to używanie tego skrotu przy zminimalizowanym oknie, to w jakiejś aplikacji widzialem cos takiego i zastanawiam sie czy z poziomu javy to wgl możliwe :P jeden specyficzny skrót by był i w wypadku jego klikniecia jakas akcja, może program w trayu by pomogl?

0

Nie pisałeś, że chodzi o KeyListenera. Moja odpowiedź dotyczyła skrótu klawiszowego do pozycji z menu.

      public void keyReleased(KeyEvent ke)
      {
           if((ke.getKeyCode() == KeyEvent.VK_B) && ke.isAltDown())
           {
                //obsługa
           }
0

To co chce uzyskać autor proste nie jest. Polecam szukać pod google fraz: "intercept key without focus".

0

Chodzi mi dokladnie o to, ze program ma byc zminimalizowany i jak klikne np ctrl+b lub strzalke w dol czy co kolwiek, ma sie wykonac jakas funkcja programu zapisana w keylistenerze. Problem w tym zeby nawet po zniknieciu programu sluchaj keylistener na obszarze komputera(badz w jakis inny sposob jesli trzeba bedzie) Z tego co pisal kolega wyzej mysle ze o to chodzi, ale jak to zrobic to juz pojecia nie mam ^^ moze ktos cos wie?

p.s
@bogdans
hmm.. moja ciekawosc każe mi spytac: jak podpiac ten skrot klawiszowy do pozycji menu? ;p

0

Hmm, ogólnie to jest nie banalny problem, bo Java daje małą kontrole nad systeme operacyjnym, przez to pewnie że każdy system operacyjny obsługuje inaczej na zdarzenia.
Rozwianie to napisanie w jezyku C programu, który będzie nasluchiwa przyciski globalnie i później połaczyć kod C z kodem Twoim Javą za pomoca biblioteki JNI.

0

Np. tak:

JMenuItem mi = new JMenuItem("Nowy",KeyEvent.VK_N);
mi.addActionListener(...);
mi.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_MASK));
0

Hmm, ogólnie to jest nie banalny problem, bo Java daje małą kontrole nad systeme operacyjnym, przez to pewnie że każdy system operacyjny obsługuje inaczej na zdarzenia.
Rozwianie to napisanie w jezyku C programu, który będzie nasluchiwa przyciski globalnie i później połaczyć kod C z kodem Twoim Javą za pomoca biblioteki JNI.

Woho.. troche do tworzenia jest, zebym ja wiedzial jak to w C zapisac chociaz.. :P

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