Java Eclipse侦听器和获取源代码时出现问题
在我的Eclipse项目中,我有一个Java Eclipse侦听器和获取源代码时出现问题,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,在我的Eclipse项目中,我有一个 Text custom_text = new Text(....); 现在我添加一个侦听器- 自定义_text.addKeyListener(新) KeyListener(){ @覆盖已按下的公共无效键(KeyEvent事件){ } @凌驾于公共空间之上 keyReleased(KeyEvent事件){ System.err.println(“事件 “+event.getSource()) }}) 无论如何,我没有得到源名称,尽管我得到的输出是文本{}。
Text custom_text = new Text(....);
现在我添加一个侦听器-
自定义_text.addKeyListener(新)
KeyListener(){
@覆盖已按下的公共无效键(KeyEvent事件){
}
@凌驾于公共空间之上
keyReleased(KeyEvent事件){
System.err.println(“事件
“+event.getSource())
}})
无论如何,我没有得到源名称,尽管我得到的输出是文本{}。
我想得到源代码名,即自定义文本
如何将侦听器中的输出作为
自定义文本
IMHO无法输入变量的名称,保留对textfield的引用。知道变量的名称也没有什么用处,因为可以有许多引用变量
使用.getSource()可以获得对小部件本身的完整引用,因此可以以任何方式处理它。可以使用event.widget来识别哪个小部件通知事件 但一般的方法是使用匿名侦听器进行中继。 因为它可以使用更可读的方法名,这更适合控制器的主题
Text nameField, emailField = ...
nameField.addListener(SWT.KeyUp, new Listener(){
public void handleEvent(Event e){
handleNameEdited();
}
});
emailField.addListener(SWT.KeyUp, new Listener(){
public void handleEvent(Event e){
handleEmailEdited();
}
});
事实上,我期待的名称,因为一些其他用途。此外,getSource()只将Text()打印为输出。所以我被卡住了。实际上在摇摆中。。我们得到对象引用名。因此,我希望这里也有同样的行为,你永远不会得到“自定义文本”。这些信息在编译时丢失。此源仍然是对象引用,它只是重写toString()并输出“Text{}”。Swing也不会根据您所写的内容打印“自定义_文本”。或者你的意思是你想要文本小部件的内容?是的。。我对自己的目标感到困惑@最重要的是,他们的观点是正确的。。。