Javafx 无法使用ControlsFX创建可清除的文本字段
我已经使用Javafx 无法使用ControlsFX创建可清除的文本字段,javafx,controlsfx,Javafx,Controlsfx,我已经使用场景生成器创建了TextField,但是当我使用KeyEvent尝试时,它不起作用 public class FXMLDocumentController implements Initializable { @FXML private TextField searchPatient; @FXML void keyTyped(KeyEvent event) { this.searchPatient = TextFields
场景生成器创建了TextField
,但是当我使用KeyEvent
尝试时,它不起作用
public class FXMLDocumentController implements Initializable {
@FXML
private TextField searchPatient;
@FXML
void keyTyped(KeyEvent event) {
this.searchPatient = TextFields.createClearableTextField();
}
}
以下是主要课程:
public class MyFX extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
以下是FXMLDocument.fxml:
<AnchorPane id="AnchorPane" prefHeight="597.0" prefWidth="726.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.homeo.home.FXMLDocumentController">
<children>
<TextField fx:id="searchPatient" layoutX="14.0" layoutY="109.0" onKeyTyped="#keyTyped" prefHeight="26.0" prefWidth="372.0" promptText="Search" />
</children>
</AnchorPane>
我不想依赖代码来进行设计,这就是为什么我想将ControlsFX
与IDE生成的代码一起使用
我希望textfield
必须显示清晰图标,因为我在一个名为clearableTextFieldf
的textfield
中输入了少量文本
但上面的所有代码并不像我预期的那个样工作
它不会创建ClearableTextField
您正在场景中放置的常规TextField
的KEY\u-TYPED
事件处理程序中创建TextField
。不过,新创建的TextField
从未添加到任何场景中
您可以使用fx:factory
属性来使用static
方法来创建TextField
,该fxmloader
添加到场景中:
。。。
您也可以使用initialize
方法创建并添加TextField
:
public class FXMLDocumentController implements Initializable {
...
@FXML
private AnchorPane anchorPane;
@Override
public void initialize(URL location, Resources resources)
searchPatient = TextFields.createClearableTextField();
searchPatient.setLayoutX(14.0);
searchPatient.setLayoutY(109.0);
searchPatient.setPrefSize(372.0, 26.0);
searchPatient.setPromptText("Search");
anchorPane.getChildren().add(searchPatient);
...
}
}
非常感谢您。我认为使用FXML
是不可能的。我使用了非常简单的FXML
。祝你过得愉快。