[英]JavaFX: Adding a Label as child to a TextField
我想在JavaFX- TextField
上面显示一个文本。 设置prompText
几乎是我想要的,但对我的用例有一些缺点。 以下代码似乎有效,但将Label
添加到TextField
的子代中感觉不对。 以下代码是否违反任何JavaFX原则或使用是否安全?
public class MyTextField extends TextField {
public MyTextField() {
Label label = new Label("test");
this.getChildren().add(label);
}
}
基于 :
以下代码是否违反任何JavaFX原则或使用是否安全?
在java中,这段代码使用起来并不安全,因为你在构造函数中调用了Overridable方法 ,如果你使用Netbeans或任何智能IDE,它会用"Overridable method call in constructor"
警告你,这里问题的描述是:
调用可以被覆盖的方法在构造函数中可能是危险的,因为在调用重写方法的那一刻,对象未完全初始化。
其次,您可以在Region,Group,Containers中添加子节点,但是将子节点添加到控件是不太好的做法,如果需要向TextField添加标签,可以使用ControlFx的 CustomTextField,这个代码示例可能会有帮助为了您的需要:
Label myLabel=new Label("Hello");
/*You use a container if you need add many nodes in CustomTextField*/
//HBox box=new HBox();
//box.getChildren().add(myLabel);
CustomTextField customField=new CustomTextField();
customField.setRight(mylabel);
//customField.setLeft(mylabel);
//customField.setRight(box);
或者通过扩展CustomTextField:
//This code is safe and the warning is removing here
public class MyTextField extends CustomTextField {
public MyTextField() {
Label label = new Label("test");
this.setRight(label);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.