是否有可能热键和助记符分配给在的JOptionPane对话框的按钮?我希望能够在一个生成的JOptionPane消息对话框与选项是,否和取消,按Y键击是按钮,N打无按钮和逃生激活退出按钮。同样,在与奥凯和取消按钮的对话,我想能够激活他们进入和逃离。

我已尝试通过Jbutton将进入的JOptionPane的按钮对象阵列与助记符设置已经。助记符工作和按钮正确显示在对话框中,但是,他们不正确时,他们被激活作用。最明显的是他们没有处置该对话框的。

什么是热键和助记符添加到的JOptionPane对话的按钮正确的方法是什么?

有帮助吗?

解决方案

您可以通过检查,看是否有成分是JOptionPane和窗格(儿童等)的组件创建instanceof JButton,然后循环,如果这样检查的文本,并设置适当的记忆。

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

其他提示

请使用UIManager的如下:

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

发送的按钮,作为参数,而不是字符串

    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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top