私はJava FXMLで質問があります。誰かが解決策を見つける手助けをすることができれば感謝します。ですから、ここで私がしたいことがあります:整数のような変数の値を示す動的ラベルが必要です。私は、整数の値を表示するためにlabelのメソッドsetText()を使うことができますが、ラベルのテキストを、プログラム内の整数の変化として自動的に更新する方法で設定する方法があります整数の変更ごとにsetText()メソッド?自動でラベルテキストを更新する
本当にありがとうございました
私はJava FXMLで質問があります。誰かが解決策を見つける手助けをすることができれば感謝します。ですから、ここで私がしたいことがあります:整数のような変数の値を示す動的ラベルが必要です。私は、整数の値を表示するためにlabelのメソッドsetText()を使うことができますが、ラベルのテキストを、プログラム内の整数の変化として自動的に更新する方法で設定する方法があります整数の変更ごとにsetText()メソッド?自動でラベルテキストを更新する
本当にありがとうございました
何あなたが探してはint型の変数に、ラベルの結合であるように聞こえます。あなたは値がIntegerPropertyがあなたのコントローラクラスで宣言され、labelFXidはFXML文書にあなたのラベルに割り当てられたFXidである
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