gpt4 book ai didi

java - 按键监听器问题

转载 作者:行者123 更新时间:2023-12-01 19:25:56 25 4
gpt4 key购买 nike

嗨,我正在使用 swing,在我的主框架(JFrame)中,我希望当用户按下 + 键时,会出现一个窗口,让我们说测试应该出现。如果我不调用新添加的 JInternalFrame 的 show 方法,我的关键监听器工作正常,但是当我调用 JInternalFrame 的 show 方法时,KeyListener 将停止监听。

我已经尝试了很多方法来解决这个问题,但一切都是徒劳,所以任何有关此问题的帮助将不胜感激。谢谢。

这是我的 keyListener

_mainFrameKeyListener = new KeyListener()
{
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
System.out.println("the key pressed Id is : " + arg0.getKeyCode());

if(arg0.getKeyCode() == 107){
test Test = new test();
_mainDesktopPane.add(Test);
Test.show();

}
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}

public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
};

最佳答案

听起来您想要一个热键而不是按键监听器来避免焦点问题。

// Get the KeyStroke for our hot key

KeyStroke plus = KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0, true);

// Get the input map for our component
// In this case we are interested in key strokes in the focussed window

InputMap inputMap = panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);

// Map the key stroke to our "action key" (see below)

inputMap.put(plus, "my_action");

// Get the action map for our component

ActionMap actionMap = panel.getActionMap();

// Add the required action listener to out action map

actionMap.put("my_action", actionListener);

http://helpdesk.objects.com.au/java/how-to-specify-a-hot-key-for-a-swing-application

关于java - 按键监听器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/969177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com