gpt4 book ai didi

java - 从 JTextPane 将关键监听器添加到 JPopupMenu 可以,但不能从 JTextArea

转载 作者:行者123 更新时间:2023-11-29 02:58:54 24 4
gpt4 key购买 nike

请看我的示例代码。

JPopupMenu popUp = new JPopupMenu();
popUp.add(new JMenuItem("sample1"));
popUp.add(new JMenuItem("sample2"));

popUp.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
System.out.println("yy");
}

@Override
public void keyPressed(KeyEvent e) {
System.out.println("yy");
}

@Override
public void keyReleased(KeyEvent e) {
System.out.println("yy");
}
});
popUp.setVisible(true);
popUp.show(textPane, 0, 0);
popUp.requestFocus();

当使用 JTextArea 作为弹出窗口的父组件时,相同的代码不起作用。我的逻辑是将焦点添加到弹出窗口,然后使用它的按键甚至重新填充弹出窗口。

最佳答案

我不太确定您要做什么。您不需要将 KeyListener 添加到弹出窗口。弹出菜单将支持从一个项目移动到另一个项目。

阅读 Bringing Up a Popup Menu 上的 Swing 教程部分获取更多信息和示例。

use it's key pressed even to re-populate the pop-up.

您应该在弹出窗口可见之前设置弹出窗口的项目。

Adding key listener to JPopupMenu from a JTextPane works, but not from JTextArea

然后发一个SSCCE演示了工作代码和非工作代码。如果我们了解您的意图,那么我们或许能够为这两个组件提供更好的替代方案。

关于java - 从 JTextPane 将关键监听器添加到 JPopupMenu 可以,但不能从 JTextArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428627/

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