调用继承的最终方法产生 "cannot find symbol" 错误
To call inherited final method produce "cannot find symbol" error
我有这个代码:
import javafx.scene.control.TextArea;
import javafx.event.EventHandler;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.KeyCode;
import javafx.scene.Node;
public class InitialTextFixedArea extends TextArea{
public InitialTextFixedArea(String testoIniziale){
super(testoIniziale);
EventHandler<KeyEvent> eventHandler = new EventHandler<KeyEvent>(){
@Override
public void handle(KeyEvent e){
if((e.getEventType() == KeyEvent.KEY_PRESSED & this.getCaretPosition() < 5)
|(this.getCaretPosition() == 5 & e.getCode() == KeyCode.BACK_SPACE)){
this.setEditable(false);
}else{
this.setEditable(true);
}
}
};
this.addEventFilter(KeyEvent.KEY_PRESSED, eventHandler);
this.addEventFilter(KeyEvent.KEY_RELEASED, eventHandler);
}
}
并且当我尝试编译时,我得到了多个 "cannot find symbol" 类型的错误,其中符号是 getCaretPosition()
和 setEditable()
方法。
我不是从 TextArea
继承了这些方法,而是从 TextInputControl
继承了这些方法吗?
感谢您的回答!
this
在此上下文中指向没有这些方法的 EventHandler
。将其更改为 InitialTextFixedArea.this.getCaretPosition()
或只是 getCaretPosition()
.
您正在从 EventHandler 中调用 this.getCaretPosition()
。在这种情况下,this
引用事件处理程序而不是 TextArea。
尝试在没有 this
.
的情况下调用它
我有这个代码:
import javafx.scene.control.TextArea;
import javafx.event.EventHandler;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.KeyCode;
import javafx.scene.Node;
public class InitialTextFixedArea extends TextArea{
public InitialTextFixedArea(String testoIniziale){
super(testoIniziale);
EventHandler<KeyEvent> eventHandler = new EventHandler<KeyEvent>(){
@Override
public void handle(KeyEvent e){
if((e.getEventType() == KeyEvent.KEY_PRESSED & this.getCaretPosition() < 5)
|(this.getCaretPosition() == 5 & e.getCode() == KeyCode.BACK_SPACE)){
this.setEditable(false);
}else{
this.setEditable(true);
}
}
};
this.addEventFilter(KeyEvent.KEY_PRESSED, eventHandler);
this.addEventFilter(KeyEvent.KEY_RELEASED, eventHandler);
}
}
并且当我尝试编译时,我得到了多个 "cannot find symbol" 类型的错误,其中符号是 getCaretPosition()
和 setEditable()
方法。
我不是从 TextArea
继承了这些方法,而是从 TextInputControl
继承了这些方法吗?
感谢您的回答!
this
在此上下文中指向没有这些方法的 EventHandler
。将其更改为 InitialTextFixedArea.this.getCaretPosition()
或只是 getCaretPosition()
.
您正在从 EventHandler 中调用 this.getCaretPosition()
。在这种情况下,this
引用事件处理程序而不是 TextArea。
尝试在没有 this
.