Question

Est-il possible d'attribuer des raccourcis clavier et mnémoniques aux boutons dans un dialogue JOptionPane? Je voudrais pouvoir, dans une boîte de dialogue de message généré JOptionPane avec les options Oui, Non et Annuler, appuyez sur Y pour appuyer sur le bouton Oui, N frapper le bouton No s'échapper pour activer le bouton d'échappement. De même, dans un dialogue avec des boutons bien et Annuler Je voudrais pouvoir les activer entrer et sortir.

J'ai essayé passer JButton dans le bouton de tableau d'objets du JOptionPane avec les mnémoniques déjà le cas. Les mnémotechnique et les boutons apparaissent correctement dans les boîtes de dialogue, cependant, ils ne jouent pas correctement quand ils sont activés. Le plus remarquable, ils ne disposent pas de la boîte de dialogue.

Quelle est la bonne façon d'ajouter des raccourcis clavier et mnémoniques aux boutons d'un dialogue JOptionPane?

Était-ce utile?

La solution

Vous pouvez créer votre JOptionPane, puis boucle à travers les composantes du volet (enfants, etc.) vérifier si les composants sont instanceof JButton, et le cas échéant vérifier le texte et définissez le mnémonique approprié.

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

Autres conseils

Exploitez UIManager comme suit:

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

Envoyer les boutons comme paramètres au lieu de chaînes

    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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top