0
응용 프로그램에서 자판 배열과 독립적 인 키보드 단축키를 구현하려고합니다 (예 : Ctrl + + 확대/축소 사용). 불행하게도, 첫 번째 방법은 작동하는 것 같군Java : 한정자와 함께 입력 된 키 입력 사용
KeyStroke.getKeyStroke(new Character('+'), 0)
KeyStroke.getKeyStroke(new Character('+'), InputEvent.CTRL_DOWN_MASK)
내가 수정 자 키를 사용하고 싶습니다 동안 같은 두 번째 같이 :
는 뭔가처럼 그렇게하는 올바른 방법입니다 가정 선.해결 방법에 대한 의견이 있으십니까?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
public class KeystrokeTest extends JFrame{
JLabel label = new JLabel("text");
public KeystrokeTest(){
JPanel panel = new JPanel();
panel.add(label);
panel.registerKeyboardAction(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
label.setVisible(!label.isVisible());
}
},
KeyStroke.getKeyStroke(new Character('+'), InputEvent.CTRL_DOWN_MASK),
JComponent.WHEN_IN_FOCUSED_WINDOW);
add(panel);
setSize(200,200);
}
public static void main(String[] args) {
new KeystrokeTest().setVisible(true);
}
}
감사 codeMan @이 줄을 시도, 작동하지만 내가 원하는되지 않습니다 : : 여기
는 완전한 조각이다 KeyEvent.VK_PLUS 키 플러스,하지를 말한다 입력 된 문자. 즉, '+'가 기본 레이어 (예 : 독일어 키보드)에있는 키보드 레이아웃에서만 작동하지만 'Shift ='를 통해 '+'에 액세스하는 미국 레이아웃에서는 말하지 않습니다. 인수로 Character ('+')를 제공함으로써 입력 된 '+'에 관심이 있다고 명시하지만 불행히도 수정 자 키는 사용하지 않는 것으로 보입니다. – Matt