gpt4 book ai didi

java - TextInputDialog 将 KeyEvent 处理程序分配给编辑器

转载 作者:行者123 更新时间:2023-12-01 11:06:43 24 4
gpt4 key购买 nike

我想使用标准TextInputDialog使用户能够输入 Price (美元值)然后将应用于 TableView 的所有选定行(转换后)。

根据 API,getEditor()方法TextInputDialog返回 TextField用于 Dialog 。当我尝试分配KeyEvent时编辑器的处理程序 ( TextField ) 我在 tField.setOnKeyPressed 上收到编译器错误在 NetBeans 中:

"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();
}
});

我在其他地方有效使用的实用函数是:

public static Boolean isNumberKeyValid(String text, String character, Double maxValue)
{
Boolean valid = Boolean.FALSE;
String fullText = text + character;
Double fullNumber = Double.valueOf(fullText);

if ( ( character.matches("\\d") || character.equals(".") ) && ( fullNumber <= maxValue ) )
valid = Boolean.TRUE;

return valid;

}

最佳答案

查看编译错误,您使用的是 Swing KeyEvent 类型而不是 JavaFX 类型。只需修复您的导入即可。

关于java - TextInputDialog 将 KeyEvent 处理程序分配给编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32877641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com