如何在 SWT 标签上执行 Key Listener
How to perform Key Listener on SWT Label
KeyListener 没有在 Label 上执行。请帮助任何人?
以下是代码片段:
breakNodeLabel = new Label(this, SWT.WRAP);
breakNodeLabel.setBackground(new Color(getDisplay(), 204, 204, 204));
breakNodeLabel.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent event) {
if (event.keyCode == SWT.DEL) {
// deleteNode(this);
System.out.println("------------Delete Break NODE----------------");
}
}
});
您已将 KeyListener 添加到 Label。
标签必须有焦点才能获取事件。
如果您想在整个 window 中监听键盘事件,请将 KeyListener 添加到您的 shell:
shell.addKeyListener(new KeyAdapter()...
如果你想要全局 KeyListener 添加显示过滤器:
Listener listener = new Listener() {
@Override
public void handleEvent(Event e) {
if(e.type == SWT.KeyDown||e.type == SWT.KeyUp) {
System.out.println("" + e.keyCode);
}
}
};
display.addFilter(SWT.KeyDown, listener);
display.addFilter(SWT.KeyUp, listener);
Label
不支持按键事件。
您可以改用只读 Text
控件:
new Text(this, SWT.READ_ONLY | SWT.WRAP);
KeyListener 没有在 Label 上执行。请帮助任何人? 以下是代码片段:
breakNodeLabel = new Label(this, SWT.WRAP);
breakNodeLabel.setBackground(new Color(getDisplay(), 204, 204, 204));
breakNodeLabel.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent event) {
if (event.keyCode == SWT.DEL) {
// deleteNode(this);
System.out.println("------------Delete Break NODE----------------");
}
}
});
您已将 KeyListener 添加到 Label。 标签必须有焦点才能获取事件。
如果您想在整个 window 中监听键盘事件,请将 KeyListener 添加到您的 shell:
shell.addKeyListener(new KeyAdapter()...
如果你想要全局 KeyListener 添加显示过滤器:
Listener listener = new Listener() {
@Override
public void handleEvent(Event e) {
if(e.type == SWT.KeyDown||e.type == SWT.KeyUp) {
System.out.println("" + e.keyCode);
}
}
};
display.addFilter(SWT.KeyDown, listener);
display.addFilter(SWT.KeyUp, listener);
Label
不支持按键事件。
您可以改用只读 Text
控件:
new Text(this, SWT.READ_ONLY | SWT.WRAP);