Frage

Ist es möglich, Hotkeys und Mnemotechnik zu den Schaltflächen in einem JOptionPane Dialog zuweisen? Ich möchte in der Lage sein, in einem JOptionPane erzeugte Nachricht Dialog mit den Optionen Ja, Nein und Abbrechen, drücken Sie Y auf die Schaltfläche Ja, N drücken Sie die Schaltfläche Nein zu treffen und die Flucht der Escape-Taste zu aktivieren. Ähnlich ist es in einem Dialog mit OK und Abbrechen Schaltflächen würde Ich mag sie zu aktivieren, um der Lage sein, mit ein- und austreten.

Ich habe versuchte vorbei JButtons in die Schaltfläche Objekt-Arrays JOptionPane mit dem Mnemonics bereits festgelegt. Die Mnemonik arbeiten und die Tasten korrekt angezeigt werden in den Dialogen, aber sie nicht richtig handeln, wenn sie aktiviert sind. Am auffälligsten sie verfügen nicht über den Dialog.

Was ist der richtige Weg, Hotkeys und Mnemotechnik zu einem JOptionPane Dialogs Tasten hinzufügen?

War es hilfreich?

Lösung

Sie können Ihre JOptionPane, und dann die Schleife durch die Komponenten der Scheibe (Kinder etc.) zu überprüfen, ob alle Komponenten sind instanceof JButton, und wenn ja, überprüfen Sie den Text, und stellen Sie die richtige mnemonic erstellen.

JOptionPane p = new JOptionPane();
Component[] c = p.getComponents();

Andere Tipps

Verwendung von UIManager Machen Sie wie folgt vor:

UIManager.put("OptionPane.okButtonMnemonic", "79");  // for Setting 'O' as mnemonic
UIManager.put("OptionPane.cancelButtonMnemonic", "67"); // for Setting 'C' as mnemonic

Senden Sie die Tasten in als Parameter anstelle von Strings

    JButton button1 = new JButton( "<html>" + nextQuestion1 + "</html>");
    button1.setMnemonic('a');
    JButton button2 = new JButton(nextQuestion2 + "VUHU");
    JButton button3 = new JButton(abort);
    Object[] possibleValues = new Object[]{button1,button2,button3};
    int selectedValue = showOptionDialog(owner, question, possibleValues);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top