Swing Windows Shortcuts ersetzen

Status
Nicht offen für weitere Antworten.

black666

Mitglied
Hi!

Ich habe hier eine recht simple Swing Applikation. Die Maske besteht aus Textfeldern, JComboboxen, einer JTable und hat einen "Schließen" Button der nicht nur mit einem Klick sondern auch mit "F4" ausgeführt werden kann.

Das Problem ist allerdings, dass Windows für DropDownListen die F4 Taste schon vordefiniert hat. Ist der Fokus also auf einer JCombobox, so wird durch Drücken der Taste "F4" nicht meine schließen-Action ausgeführt sondern die DropDownListe geöffnet (wie auch in jeder anderen Windows Applikation, in der DropDownListen zum Einsatz kommen).

Dieses Verhalten stört meinen Kunden aber, da er die Maske explizit mit F4 schließen will - egal wo der Fokus gerade ist. Gibt es unter Java/Swing eine Möglichkeit, die Windows Shortcuts zu überschreiben?
 

Ebenius

Top Contributor
Nicht dass ich wüsste. Häng Dich mal mit der Maske [c]AWTEvent.KEY_EVENT_MASK[/c] als [c]AWTEventListener[/c] an das
Code:
Toolkit[/c] und schau mal, ob Du bei Druck auf [c]F4[/c] einen [c]KeyEvent[/c] bekommst, wenn der Fokus auf einer Deiner Komponenten liegt. Wenn nicht, dann hast Du schlechte Karten.

Ebenius
 

velaluka

Aktives Mitglied
Hallo,
ist der Short-Cut nicht ALT+F4 zum Schließen einer Anwendung. Funktioniert bei mir auch wenn eine Combobox geöffnet ist.
Ciao velaluka
 

diggaa1984

Top Contributor
er möchte ja bestimmt nicht die ganze anwendung kicken sondern nur ein aktuell geöffnetes formular, wenn ich das so richtig verstanden habe
 

black666

Mitglied
er möchte ja bestimmt nicht die ganze anwendung kicken sondern nur ein aktuell geöffnetes formular, wenn ich das so richtig verstanden habe

Genau. Die Applikation besteht aus mehreren Masken - jede Maske besitzt einen Schließen-Button, der wieder zurück zur Hauptmaske führt. Der Kunde wünscht jetzt explizit, dass er nicht immer auf "Schließen" klicken muss, sondern auch mit "F4" einzelne Masken schließen kann (die MASKEN schließen, nicht die APPLIKATION).

Das ganze funktioniert ja auch in 95% der Fälle - aber eben nicht wenn der Focus gerade auf einer DropDownListe ist, da springt dann der F4 Shortcut von Windows an....
 
M

MiDniGG

Gast
Lässt sich bei mir nicht reproduzieren... Hast Du der DropDownListe auch den KeyListener geadded?
 

Geeeee

Bekanntes Mitglied
Geht bei mir auch nicht, aber um das Problem mal ansatzweise zu lösen folgendes Beispiel (ob nun mit oder ohne ALT taste musst du wissen):
Java:
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {

            public void eventDispatched(AWTEvent event) {
                KeyEvent keyEvent = ((KeyEvent) event);
                
                if (keyEvent.getModifiers()==KeyEvent.ALT_MASK && keyEvent.getID()==KeyEvent.KEY_PRESSED && keyEvent.getKeyCode() == KeyEvent.VK_F4) {
                    System.out.println("bleib offen");
                    keyEvent.consume();
                }
            }

        }, AWTEvent.KEY_EVENT_MASK);
 

Ebenius

Top Contributor
Sind das editierbare JComboBoxes? Wie installierst Du denn die Aktion? Ich hoffe per KeyBinding und nicht mit KeyListeners...

Ebenius
 

black666

Mitglied
Lässt sich bei mir nicht reproduzieren... Hast Du der DropDownListe auch den KeyListener geadded?

Aaaahh. Danke für den Hinweis!
Bin draufgekommen, dass die Action zum Schließen der Maske an der Maske selbst hängt (damit ich nicht an jede Komponente nen Listener hängen muss bzw. in Zukunft auch nicht drauf vergessen darf). Wenn ich an die JCombobox Komponenten auch noch explizit die Action dranhänge, funktioniert es.

Ist vielleicht nicht die schönste Lösung, aber es funktioniert und ich bin zufrieden (der Kunde wahrscheinlich auch hehe).

Thanks!!
 

Ebenius

Top Contributor
Statt an jede Komponente den Listener zu hängen, kannst Du auch an die Maske einfach ein KeyBinding anhängen:
Java:
final InputMap im = getInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0), "closeForm");

getActionMap().put("closeForm", new AbstractAction() {
  public void actionPerformed(ActionEvent e) {
    // close the form here
  }
});
Das war's dann schon.

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa JavaFX JAR unter Windows ausführen schlägt fehl? AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
T Swing DPI-Skalierung und Java 2D unter Java 11 (und Windows 10) AWT, Swing, JavaFX & SWT 2
L Swing Panels bewegen wie Windows 10 Kacheln AWT, Swing, JavaFX & SWT 0
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
M Swing Code funktioniert auf Windows aber nicht Linux... AWT, Swing, JavaFX & SWT 3
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
S Java Swing auf Windows Phone AWT, Swing, JavaFX & SWT 6
M Swing JComboBox mit Laufwerksbuchstaben (Windows) AWT, Swing, JavaFX & SWT 6
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
Ghostman1711 GUI Java von Klasse mit Application Windows anderes Application Window aufrufen AWT, Swing, JavaFX & SWT 6
Grevak DisplayMode Problem seit Windows 10 AWT, Swing, JavaFX & SWT 2
Avarion Swing JFrame unter Windows 10 kleiner ?! AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Windows Blue-Screen nach anzeigen eines Bildes in Java AWT, Swing, JavaFX & SWT 10
S Swing Automatisch 2px Rahmen in Windows 8 AWT, Swing, JavaFX & SWT 0
A Swing JProgressbar im Windows Look & Feel Farbanpassung AWT, Swing, JavaFX & SWT 2
P Verbuggte custom JButton unter Windows AWT, Swing, JavaFX & SWT 9
W Windows Fenster in einem Programm AWT, Swing, JavaFX & SWT 2
morphesus AWT Windows 7 Aero Look AWT, Swing, JavaFX & SWT 2
H Fenstergröße bei Mac und Windows gleich einstellen? AWT, Swing, JavaFX & SWT 3
R Problem mit TrayIcon unter Windows/Linux AWT, Swing, JavaFX & SWT 7
B Windows Look and Feel AWT, Swing, JavaFX & SWT 2
S Swing TrayIcon bei Systemdienst (Windows, Systemuser) AWT, Swing, JavaFX & SWT 7
N Swing JTree TreePath zu Windows Pfad? AWT, Swing, JavaFX & SWT 2
S GUI aussehen unter Windows und Linux (und Mac) AWT, Swing, JavaFX & SWT 13
N Swing von Windows zu Ubuntu AWT, Swing, JavaFX & SWT 3
S Swing Threads Windows 7 64 bit AWT, Swing, JavaFX & SWT 12
E Windows Kontext Menü - Laufendes Programm AWT, Swing, JavaFX & SWT 3
A Swing Probleme unter Windows 7 AWT, Swing, JavaFX & SWT 5
Dragonfire Swing UTF-8 BOB Probleme mit Windows Look and Feel AWT, Swing, JavaFX & SWT 4
J Applet Linux(-(k)ubuntu-)-Firefox-Java-Plugin - Fensterschließprobleme die bei Windows so nicht auftreten AWT, Swing, JavaFX & SWT 4
F AWT MouseMotionListener e.getButton() ist immer 0 unter Linux und Windows AWT, Swing, JavaFX & SWT 6
E Implementierung des Windows Rechners? AWT, Swing, JavaFX & SWT 7
O AWT Shaped, Translucent Windows AWT, Swing, JavaFX & SWT 14
LittleJavaCup Suchmaschine programmieren (wie bei Windows) AWT, Swing, JavaFX & SWT 2
W TrayIcon in Windows 7 unscharf AWT, Swing, JavaFX & SWT 8
R Windows-Dateien auf GUI ziehen AWT, Swing, JavaFX & SWT 3
G Quaqua unter Windows AWT, Swing, JavaFX & SWT 15
S LookAndFeel Look and Feel mit Windows funktioniert nicht AWT, Swing, JavaFX & SWT 8
G Windows XP layout herausfinden AWT, Swing, JavaFX & SWT 7
J Java & Windows-7-Taskbar AWT, Swing, JavaFX & SWT 13
M Swing JFileChooser mit Windows 7 AWT, Swing, JavaFX & SWT 8
L JPanel mit Objekten selektieren wie unter Windows / Ubuntu AWT, Swing, JavaFX & SWT 4
A Swing LAF unter Windows: javax.swing.DebugGraphics cannot be cast to java.awt.Graphics2D AWT, Swing, JavaFX & SWT 5
M Fenster Windows-Like anordnen AWT, Swing, JavaFX & SWT 2
P Swing [gelöst/erledigt] Gleicher Code läuft unterschiedlich unter Linux und Windows AWT, Swing, JavaFX & SWT 5
G JFrame und Windows Vista? AWT, Swing, JavaFX & SWT 4
G JFrame in Windows? AWT, Swing, JavaFX & SWT 4
D Transperency of Windows AWT, Swing, JavaFX & SWT 7
P SWT, Windows 2000, GDI+ und Microsoft Redistributable AWT, Swing, JavaFX & SWT 3
N Modale Windows AWT, Swing, JavaFX & SWT 2
G windows look and feel problem AWT, Swing, JavaFX & SWT 7
S KeyEvents in Linux und Windows AWT, Swing, JavaFX & SWT 14
M Globale Events in Windows abfangen AWT, Swing, JavaFX & SWT 2
M Windows-Applikationen minimieren AWT, Swing, JavaFX & SWT 4
G Windows Vista Gadget AWT, Swing, JavaFX & SWT 5
T SWT - Wie Windows erstelltes .jar auf einem MAC ausführen? AWT, Swing, JavaFX & SWT 25
M Windows-Fensterinhalt in Java-Applikation darstellen AWT, Swing, JavaFX & SWT 6
G Windows Taste in KeyEvent? AWT, Swing, JavaFX & SWT 4
P SWT - "Combo" aus dem Windows-FileDialog AWT, Swing, JavaFX & SWT 3
A JProgressBar: Farbe im Windows Look&Feel ändern. AWT, Swing, JavaFX & SWT 1
K Windows Style als standard? AWT, Swing, JavaFX & SWT 2
S Bei SWT den Windows beenden Button manipulieren? AWT, Swing, JavaFX & SWT 4
T JGoodies unter Windows 98 AWT, Swing, JavaFX & SWT 4
F AWT Programm unter Linux anders als unter Windows ! AWT, Swing, JavaFX & SWT 8
N SWT: GUI Windows Events AWT, Swing, JavaFX & SWT 8
P Swing-Komponenten - Standart-Windows Design? AWT, Swing, JavaFX & SWT 4
I Windows LaF verbessern? AWT, Swing, JavaFX & SWT 12
F Schriftarten unter Windows und Linux AWT, Swing, JavaFX & SWT 6
T Windows-Typisches Menü für Swing AWT, Swing, JavaFX & SWT 3
G Windows LookAndFeel - Classpath AWT, Swing, JavaFX & SWT 6
M Windows file icons in Java verwenden AWT, Swing, JavaFX & SWT 2
TheJavaKid Windows 98 LaF AWT, Swing, JavaFX & SWT 4
G standard blau (windows) != color.blue AWT, Swing, JavaFX & SWT 2
G JTable wird im Windows Look&Feel nicht gedruckt AWT, Swing, JavaFX & SWT 5
B Komische Darstellung unter Windows 2000 AWT, Swing, JavaFX & SWT 2
W Problem mit Fensteranzeige in Windows AWT, Swing, JavaFX & SWT 3
O Windows Lautstärke regeln wie? AWT, Swing, JavaFX & SWT 23
C Java Programm wie Windows Taskleiste AWT, Swing, JavaFX & SWT 2
P Garfikfehler unter Windows 2000 AWT, Swing, JavaFX & SWT 3
T Programm gleich wie Windows Media Player in den Task geben AWT, Swing, JavaFX & SWT 10
H Wie bastelt man eine Baumstruktur wie im Windows-Explorer? AWT, Swing, JavaFX & SWT 5
A Probleme mit Windows Style (Background) AWT, Swing, JavaFX & SWT 4
javasdann JTable Kopfzeile in Windows Look&Feel unschön. AWT, Swing, JavaFX & SWT 3
L windows explorer AWT, Swing, JavaFX & SWT 4
O SWT-Anwendung für Windows und Linux verteilen AWT, Swing, JavaFX & SWT 3
B JTree + Linien im Windows L&F AWT, Swing, JavaFX & SWT 9
T Das Windows Fenster "Öffnen" mit Java darstellen AWT, Swing, JavaFX & SWT 9
V Windows Look für JTree? AWT, Swing, JavaFX & SWT 3
Fishmeaker Shortcuts ohne ALT zuweisen AWT, Swing, JavaFX & SWT 1
M Swing ShortCuts für Buttons AWT, Swing, JavaFX & SWT 4
Semox Swing Shortcuts in Menü realisieren AWT, Swing, JavaFX & SWT 2
V Shortcuts nicht im Textfeld AWT, Swing, JavaFX & SWT 2
B JTable & Tastatur-Shortcuts AWT, Swing, JavaFX & SWT 3
J Shortcuts definieren AWT, Swing, JavaFX & SWT 11
W Shortcuts für Dialogfenster mit SWT AWT, Swing, JavaFX & SWT 2
R Programmweite Shortcuts, Tastatureingaben AWT, Swing, JavaFX & SWT 11
M JTree und Shortcuts ? AWT, Swing, JavaFX & SWT 3
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14

Ähnliche Java Themen

Neue Themen


Oben