设置助记符和快捷键的JOptionPane的对话
-
19-09-2019 - |
题
是否有可能热键和助记符分配给在的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);
不隶属于 StackOverflow