在我的Eclipse RCP应用程序(适用于Windows和Ubuntu Linux)中,我想阻止用户复制和粘贴数据。我已成功阻止在Windows,但在Ubuntu 12.04上,相同的代码无法正常工作。以下是适用于Windows的代码 -
htmlBrowser.addListener(SWT.KeyDown, new Listener()
{
@Override
public void handleEvent(Event e)
{
if ((e.stateMask & SWT.CTRL) == SWT.CTRL && e.keyCode == 'c')
{
e.doit = false;
}
}
});
在上述情况下,NOT进入流程。
任何帮助?
答案 0 :(得分:1)
好的,在Linux Mint上测试了它,它运行得很好。只需听取SWT.KeyDown
并检查用户是否按 Ctrl + c 并将event.doit
设置为false
:
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout(1, false));
Text text = new Text(shell, SWT.BORDER);
text.addListener(SWT.KeyDown, new Listener()
{
@Override
public void handleEvent(Event e)
{
if ((e.stateMask & SWT.CTRL) == SWT.CTRL && e.keyCode == 'c')
{
e.doit = false;
}
}
});
shell.setSize(1000, 400);
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}