我想使用标准TextInputDialog
让用户输入Price
(美元价值),然后将其应用于TableView
的所有选定行(转化后) )。
根据API,getEditor()
的{{1}}方法会返回TextInputDialog
中使用的TextField
。当我尝试将Dialog
处理程序分配给编辑器(KeyEvent
)时,我在NetBeans中的TextField
收到编译器错误:
tField.setOnKeyPressed
基本代码是:
"incomaptible types < anonymous EventHandler<java.awt.event.KeyEvent>> cannot be converted to EventHandler<?, super javafx.Scene.Input.KeyEvent>>
type argument T is a type-variable:
T extends Event declared in interface EventHandler.
我在其他地方有效使用的效用函数是:
TextInputDialog dialog = new TextInputDialog();
dialog.setTitle("Set PRICE per kg.");
dialog.setContentText("Price per kg:");
// Configure the EDITOR.
TextField tField = dialog.getEditor();
tField.setOnKeyPressed(new EventHandler<KeyEvent>()
{
@Override
public void handle(KeyEvent ke)
{
String character = ke.getCharacter();
String text = ke.getText();
if ( !LM_Utility.isNumberKeyValid(text, character, 99.99) )
ke.consume();
}
});
答案 0 :(得分:1)
查看编译错误,您使用的是Swing KeyEvent
类型而不是JavaFX类型。只需修复您的导入。