JavaFXとシーンビルダを使用して、コントローラからLabel内のテキストにアクセスしようとしています。コントローラには以下のよう コントローラからテキストを取得するためにラベルからfx:idを取得
私はラベルを初期化:@FXML
private Label label1;
次のコードは、FXMLファイルである:私はコントローラ使用シーンでこの機能にラベルを結合した
<Label fx:id="lable1" onMouseClicked="#handleLabel" text="Label 1" />
ビルダー:
private void handleLabel(MouseEvent event) {
// get text from label n
}
私の考えはlabel1.getText()
。しかし、そのためには、ラベルのfx:idを取得する必要があります。ラベルがたくさんあるので、すべてのidケースを個別にハードコードすることはできません。
Better way for Getting id of the clicked Object in JavaFX controller 私はこれを見つけましたが、ラベルの初期化とIDの設定が@FXMLに対応していないため、この回答がうまくいくとは思いません。 また、コンポーネントのfx:idにアクセスできるかどうかについては答えられていません。
getText()
のようなLabelオブジェクトのメソッドへのアクセス方法については、他の方法も歓迎します。
'((Label)event.getSource())。getText()'? (あなたが 'fx:id'を手に入れることができたとしても、それはどうやって 'getText()'を呼び出すのですか?) –
考えてみたのはlabel1.getText()でした。 fx:idはlabel1なので、id .getText()の名前を使うことができると思いました。 でも、あなたのやり方はうまくいく。しかし答えはfx:idにアクセスすることはできませんが、その周りに道を見つける必要があります。ありがとう! – sandboxj
しかし、 'label1'(これはオブジェクト参照)はありません。' label1 "というテキストを含む' String'変数があります。これはまったく同じものではありません。あなたは何をしますか? –