我在java FXML中有一個問題,如果有人能幫我找到解決方案,我將不勝感激。所以這就是我想要做的事情:我想要一個動態標籤來顯示像integer這樣的變量的值。我知道我可以使用標籤的方法setText()來顯示整數的值,但是有沒有一種方法來設置標籤的文本,使其能夠隨着程序中的整數變化自動更新自身(不需要調用setText()方法每次更新整數時)?驗證標籤文本
非常感謝
我在java FXML中有一個問題,如果有人能幫我找到解決方案,我將不勝感激。所以這就是我想要做的事情:我想要一個動態標籤來顯示像integer這樣的變量的值。我知道我可以使用標籤的方法setText()來顯示整數的值,但是有沒有一種方法來設置標籤的文本,使其能夠隨着程序中的整數變化自動更新自身(不需要調用setText()方法每次更新整數時)?驗證標籤文本
非常感謝
聽起來好像是你的尋找你的標籤,以一個int型變量綁定。其中值是IntegerProperty在控制器類中聲明和labelFXid是FXid分配給FXML文檔中您的標籤,您可以用
labelFXid.textProperty().bind(value.asString());
做到這一點。你可以從Uluk Biy's solution找到一個很好的例子,類似的問題。在那個例子中,他直接從FXML文件綁定標籤。如下例所示,我最好將代碼保存在控制器中。
FXMLDocument.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="labelupdater.FXMLDocumentController">
<children>
<Button fx:id="button" layoutX="126" layoutY="90" onAction="#handleButtonAction" text="Click Me!" />
<Label fx:id="label" alignment="CENTER" layoutX="126" layoutY="120" minHeight="16" minWidth="69">
<font>
<Font size="24.0" />
</font></Label>
</children>
</AnchorPane>
FXMLDocumentController.java
package labelupdater;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.beans.property.*;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
public class FXMLDocumentController implements Initializable {
private IntegerProperty counter;
public int getCounter() {
return counter.get();
}
public void setCounter(int value) {
counter.set(value);
}
public IntegerProperty counterProperty() {
return counter;
}
@FXML
private Label label;
@FXML
private void handleButtonAction(ActionEvent event) {
setCounter(getCounter() + 1);
}
@Override
public void initialize(URL url, ResourceBundle rb) {
counter = new SimpleIntegerProperty(0);
label.textProperty().bind(counter.asString());
}
}
最終的結果是,每一個所述按鈕被點擊setCounter(getCounter() + 1)
時間由一個遞增變量計數器的值和所述標籤是自動更新以顯示新值。計數器變量和綁定在FXMLDocumentController的初始化中聲明。
編輯:錯字改正
你應該表明您已經嘗試了代碼,你有一個問題,這並不是一個請寫我的代碼社區 – Ibo
我沒叫你給我寫代碼。我問了一些想法。謝謝 – Radintern
此社區將開展代碼工作,您需要選擇不同的社區。在右上角,點擊最右側的圖標,您可以搜索STACK EXCHANGE社區 – Ibo