Joptionpane 대화 상자에 대한 mnemonics 및 핫 키 설정
-
19-09-2019 - |
문제
Joptionpane 대화 상자에서 버튼에 핫키와 니모닉을 할당 할 수 있습니까? 옵션과 함께 JoptionPane 생성 메시지 대화 상자에서 예, 아니오 및 취소가 포함 된 경우 Y를 누르면 Y 버튼을 누르고 N 버튼을 누르고 탈출 버튼을 활성화 할 수 있습니다. 마찬가지로 OK 및 취소 버튼이있는 대화 상자에서는 Enter and Escape로 활성화 할 수 있습니다.
나는 이미 mnemonics 세트와 함께 Jbuttons를 Joptionpane의 버튼 객체 배열로 전달하려고 시도했습니다. Mnemonics는 작동하고 버튼은 대화 상자에서 올바르게 나타나지만 활성화 될 때 제대로 작동하지 않습니다. 가장 눈에 띄게 대화를 처리하지 않습니다.
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