그래서, 우리는 다음과 같은 응용 프로그램의 구조를 가지고 다음 EC_GUI 생성자 JOGL, com.jogamp.newt.event.KeyListener 문제
내가 GLViewer에private void initGlViewer() {
/**
* Viewer.
*/
glViewer = new GLViewer();
glViewer.setup();
centerPanel.add(glViewer.getNewtCanvasAWT());
}
초기화 glViewer는 GLEventListener를 구현하며 다음과 같습니다.
public GLViewer() {
GLProfile gLProfile = GLProfile.getDefault();
GLCapabilities gLCapabilities = new GLCapabilities(gLProfile);
glWindow = GLWindow.create(gLCapabilities);
/*
* We combine NEWT GLWindow inside existing AWT application (the main JFrame)
* by encapsulating the glWindow inside a NewtCanvasAWT canvas.
*/
newtCanvasAWT = new NewtCanvasAWT(glWindow);
}
in the glViewer.setup() mouse, key 및 glEvent 리스너를 glWindow에 추가합니다.
com.jogamp.newt.event의 키 및 마우스 이벤트를 사용하고 있습니다. 뿐만 아니라
@Override
public synchronized void keyPressed(KeyEvent ke) {
System.out.println("keyPressed " + ke.getKeyCode());
과의 keyReleased : 내 모든 KeyListener에서
내의 keyPressed 이벤트가 시작됩니다.
때때로 트리거링과 관련하여 불일치가 발생합니다. 예를 들어, Ctrl + o 키 조합을 눌러 fileChooser를 열어 보겠습니다. 그것이 있어야로
이
은 다음과 같습니다 여기keyPressed 17
List of pressed inputs
ctrl
keyPressed 79
List of pressed inputs
ctrl
o
keyReleased 17
keyReleased 79
2014.10.09, 10:53:49 [INFORMATION] Open a project ...
2014.10.09, 10:53:49 [INFORMATION] Opening file chooser for load.
2014.10.09, 10:53:55 [INFORMATION] User clicked 'cancel' in file chooser dialog.
당신은, 그들은 모두 해제되고 fileChooser가 표시됩니다 다음 (17) O를, 내가 Ctrl 키 (17)를 누르면 볼 수 있습니다. 그리고 마지막 줄에서 볼 수 있듯이 끝납니다.
keyPressed 17
List of pressed inputs
ctrl
keyPressed 79
List of pressed inputs
ctrl
o
keyReleased 17
2014.10.09, 10:57:34 [INFORMATION] Open a project ...
2014.10.09, 10:57:34 [INFORMATION] Opening file chooser for load.
2014.10.09, 10:57:35 [INFORMATION] User clicked 'cancel' in file chooser dialog.
keyPressed 17
List of pressed inputs
ctrl
keyReleased 79
2014.10.09, 10:57:36 [INFORMATION] Open a project ...
2014.10.09, 10:57:36 [INFORMATION] Opening file chooser for load.
2014.10.09, 10:57:38 [INFORMATION] User clicked 'cancel' in file chooser dialog.
나는 Ctrl 키와 O의 keyPressed 얻을,하지만 난의 keyReleased,이 경우 O 중 하나 놓칠 수 :
그러나 때때로 이것은 내가 무엇을 얻을 수 있습니다. 어쨌든 fileChooser는 여전히 열립니다. 다음 시도에서 Ctrl + O를 다시 누르지 만 이번에는 okeyPressed가 누락됩니다. 나는 또한 Ctrl 키를 놓친다. 어쨌든 fileChooser는 여전히 열립니다. 그러나 때때로 예를 들어, 개방 나던 :
keyPressed 17
List of pressed inputs
ctrl
keyPressed 79
List of pressed inputs
ctrl
o
keyReleased 17
2014.10.09, 11:08:57 [INFORMATION] Open a project ...
2014.10.09, 11:08:57 [INFORMATION] Opening file chooser for load.
2014.10.09, 11:08:58 [INFORMATION] User clicked 'cancel' in file chooser dialog.
keyPressed 17
List of pressed inputs
ctrl
keyReleased 79
2014.10.09, 11:08:59 [INFORMATION] Open a project ...
2014.10.09, 11:08:59 [INFORMATION] Opening file chooser for load.
2014.10.09, 11:09:02 [INFORMATION] User clicked 'cancel' in file chooser dialog.
keyReleased 79
keyReleased 17
keyReleased 79
나는 Ctrl 키의 keyPressed, O-의 keyPressed, CTRL-의 keyReleased, 아니 오-의 keyReleased를 얻을 fileChooser가 열리면, 그때 닫습니다. 나는 그들을 다시 눌렀다. 나는 Ctrl-keyPressed, o-keyPressed, o-keyReleased, ctrl-keyReleased, fileChooser를 연 다음 다시 닫는다. 나는 Ctrl + O를 다시 눌러, 나는 어떤 keyPressed도 얻지 못했고, 나는 단지 o-keyReleased를 얻었고, ctrl-keyReleased 그리고 다른 o-keyReleased를 얻었습니다. FileChooser가 이번에 열리지 않습니다 ..
단서가 있습니까? http://forum.jogamp.org/keyReleased-keyPressed- :
질문은 이미 여기에 질문 KeyEvent.isXDown()에 의해 각각의 X 수정을 quering으로 누르면 수정 매의 keyPressed /의 keyReleased 이벤트에서 확인하여 해결 problem-td4033288.html 단위 테스트를 제공하고 버그 보고서를 작성하십시오. – gouessej
@ gouessej already done – elect
https://jogamp.org/bugzilla/show_bug.cgi?id=1092 – gouessej