Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaFX中擦除标签?_Java_Javafx_Label - Fatal编程技术网

如何在JavaFX中擦除标签?

如何在JavaFX中擦除标签?,java,javafx,label,Java,Javafx,Label,在JavaFX中创建label控件时,如何在按钮单击事件中擦除它?以下是我如何创建我的标签: Label result= new Label("The result is ..."); root.add(result, 0, 1); 我尝试用以下内容覆盖它: Label result= new Label(""); root.add(result, 0, 1); 但这并不会使前面的文本消失。它只覆盖窗格上的文本 谢谢。如果要删除

在JavaFX中创建label控件时,如何在按钮单击事件中擦除它?以下是我如何创建我的标签:

        Label result= new Label("The result is ...");
        root.add(result, 0, 1);
我尝试用以下内容覆盖它:

        Label result= new Label("");
        root.add(result, 0, 1);
但这并不会使前面的文本消失。它只覆盖窗格上的文本

谢谢。

如果要删除标签内容,请执行以下操作:

final Label result = ...
root.add(result, 0, 1);

button.setOnAction(new EventHandler<ActionEvent>() {
    @Override public void handle(ActionEvent event) {
        result.setText("");
    }
});
您可以稍后再添加它

在任何情况下,如果在方法中声明,它必须是最终的。如果是类成员变量,则不带final即可。

如果要删除标签内容,请执行以下操作:

final Label result = ...
root.add(result, 0, 1);

button.setOnAction(new EventHandler<ActionEvent>() {
    @Override public void handle(ActionEvent event) {
        result.setText("");
    }
});
您可以稍后再添加它

在任何情况下,如果在方法中声明,它必须是最终的。如果是类成员变量,则不带final也可以。

执行此操作时:

Label result= new Label("");
您正在创建一个新的
标签
对象。
结果
只是一个变量,它指向类型为
标签
的对象。每次使用关键字
new
时,您都在堆中创建一个新对象,但没有删除旧对象,这就是为什么它会覆盖窗格上的文本

不要每次要更改文本时都创建新标签,只创建一次
标签
,然后通过执行以下操作更改此现有
标签
对象的文本:

result.setText("");
将其放入按钮的侦听器中:

button.setOnAction(new EventHandler<ActionEvent>() {
    @Override public void handle(ActionEvent event) {
        result.setText("");
    }
});
button.setOnAction(新的EventHandler(){
@重写公共无效句柄(ActionEvent事件){
result.setText(“”);
}
});
执行此操作时:

Label result= new Label("");
您正在创建一个新的
标签
对象。
结果
只是一个变量,它指向类型为
标签
的对象。每次使用关键字
new
时,您都在堆中创建一个新对象,但没有删除旧对象,这就是为什么它会覆盖窗格上的文本

不要每次要更改文本时都创建新标签,只创建一次
标签
,然后通过执行以下操作更改此现有
标签
对象的文本:

result.setText("");
将其放入按钮的侦听器中:

button.setOnAction(new EventHandler<ActionEvent>() {
    @Override public void handle(ActionEvent event) {
        result.setText("");
    }
});
button.setOnAction(新的EventHandler(){
@重写公共无效句柄(ActionEvent事件){
result.setText(“”);
}
});