【发布时间】:2012-01-09 13:13:44
【问题描述】:
所以我试图阻止用户通过按 control + C、control + X、control + V 来使用默认系统操作。
我想在这个特定的 scrollPane 内的任何地方抓住关键。 scrollPane 将一个组件加载到自身中,例如 JLabel。
scrollPane.addKeyListener(new KeyListener(){
@Override
public void keyPressed(KeyEvent evt) {
if (evt.isControlDown() && evt.getKeyCode() == KeyEvent.VK_C) {
System.out.println("disabled");
} else if (evt.isControlDown() && evt.getKeyCode() == KeyEvent.VK_X) {
System.out.println("disabled");
} else if (evt.isControlDown() && evt.getKeyCode() == KeyEvent.VK_V) {
System.out.println("disabled");
}
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
});
但是,没有打印任何内容。
我在 Jtree 中添加了相同的 keylistener,但它正在为此工作。
更新:
那么使用键绑定,如何让 JoptionPane 出现?
scrollPane.getInputMap(JComponent.WHEN_FOCUSED)
.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_DOWN_MASK),
JOptionPane.showMessageDialog(null, "disabled"));
【问题讨论】:
标签: java swing keylistener