属性はリテラル文字列のみを解釈するため、リソースや式を解決できません。 IMHOこれはデザイン上の欠陥です。
私はこのやや迂回的な回避策を見つけました。あなたはあなたが必要とするリソースを持つマップを作成し、ちょうどマップの要素にアクセスするために<fx:reference>
を使用することができます。
ResourceTest.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.collections.FXCollections?>
<?import java.lang.String ?>
<?import java.util.HashMap ?>
<BorderPane xmlns:fx="http://javafx.com/fxml/1">
<fx:define>
<HashMap fx:id="rscBndl"
message="%category.message"
request="%category.request"
error="%category.error" />
</fx:define>
<top>
<ChoiceBox >
<items>
<FXCollections fx:factory="observableArrayList">
<fx:reference source="rscBndl.message" />
<fx:reference source="rscBndl.request" />
<fx:reference source="rscBndl.error" />
</FXCollections>
</items>
</ChoiceBox>
</top>
</BorderPane>
ここ
<fx:define>
<HashMap fx:id="rscBndl"
message="%category.message"
request="%category.request"
error="%category.error" />
</fx:define>
<ChoiceBox >
<items>
<FXCollections fx:factory="observableArrayList">
<fx:reference source="rscBndl.message" />
<fx:reference source="rscBndl.request" />
<fx:reference source="rscBndl.error" />
</FXCollections>
</items>
</ChoiceBox>
をSSCCEです
resources.properties:
category.message = Message
category.request = Request
category.error = Error
[値](悲しいこと:私はこれは私が今それを見つけることができないものの、最近尋ねた、と結論は資源解像度がFX `で動作しないことがあったと思う
ResourceTest.java
import java.io.IOException;
import java.util.ResourceBundle;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class ResourceTest extends Application {
@Override
public void start(Stage primaryStage) throws IOException {
ResourceBundle resources = ResourceBundle.getBundle("resources");
FXMLLoader loader = new FXMLLoader(getClass().getResource("ResourceTest.fxml"), resources);
Scene scene = new Scene(loader.load(), 600, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
![enter image description here](https://i.stack.imgur.com/IGn3n.png)
)。おそらくコントローラでこれを行う必要があります。 –
ええ、まあ、私は回避策があるかもしれません... –