當您在JavaFX中創建標籤控件時,如何在點擊按鈕事件期間將其刪除?這裏是我創造了我的標籤:如何擦除JavaFX中的標籤?
Label result= new Label("The result is ...");
root.add(result, 0, 1);
我試圖覆蓋它:
Label result= new Label("");
root.add(result, 0, 1);
但它不會使以前的文字消失。它只覆蓋窗格上的文本。
謝謝。
當您在JavaFX中創建標籤控件時,如何在點擊按鈕事件期間將其刪除?這裏是我創造了我的標籤:如何擦除JavaFX中的標籤?
Label result= new Label("The result is ...");
root.add(result, 0, 1);
我試圖覆蓋它:
Label result= new Label("");
root.add(result, 0, 1);
但它不會使以前的文字消失。它只覆蓋窗格上的文本。
謝謝。
當你這樣做:
Label result= new Label("");
您正在創建一個新的Label
對象。 result
只是一個指向Label
類型的對象的變量。每次使用關鍵字new
時,您都會在堆中創建一個新對象,但不會刪除舊對象,這就是爲什麼它會覆蓋該窗格上的文本。
而是要更改文本每一次創建一個新的標籤的,創建一個Label
只有一次,而做這個改變這種現有Label
對象的文本:
result.setText("");
將這個內部按鈕的收聽者:
button.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent event) {
result.setText("");
}
});
如果你想要刪除的內容標籤,做到:
final Label result = ...
root.add(result, 0, 1);
button.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent event) {
result.setText("");
}
});
您也可以刪除標籤;請將setText()
呼叫替換爲:
result.getParent().getChildren().remove(result);
您可以稍後再添加它。
在任何情況下,如果在方法中聲明,它必須是最終的。如果它是一個類成員變量,那麼沒有最終結果是可以的。