javafxアプリケーションで表示したいパラメータが12個あります。これらのパラメータをレンダリングするためにTableViewを選択するだけです。私はそのアプローチを使用してい一般的なオブジェクトのプロパティでTableViewを使用する
...など電気ショック療法StringParameter、IntegerParameter、LongParameter、BooleanParameter、などの複数のサブクラスを持っていることをここ
public abstract class AbstractParameter<T> {
private String myKey;
private ObjectProperty<T> myValue = new SimpleObjectProperty<T>()
private boolean constantValue;
public AbstractParameter<T>(){
//...
}
ObjectProperty<T> property(){
return property;
}
}
注:ここでは
は、どのようなパラメータは次のように見える学位論文でありますparamsの一部が定義されているので、/実行時に更新さ
今ここに私のParametersUIControllerある
public Class ParametersUiController {
@FXML
private TableView<AbstractParameter<?>> paramsTable;
@FXML
private TableColumn<AbstractParameter<?>, String> paramKeyCol;
@FXML
private TableColumn<AbstractParameter<?>, String> paramValueCol;
@FXML
private TableColumn<AbstractParameter<?>, Boolean> paramConstantValueCol;
private ObservableList<AbstractParameter<?>> paramsData = FXCollections.observableArrayList();
/**
* Just add some sample data in the constructor.
*/
public PersonTableController() {
/* getting a list of params for a service
the params are defined in list
*/
for(AbstractParameter<?> param : rawData)
paramsData.add(param);
}
/* I cast the value type to string always */
pValueCol.setCellValueFactory(new Callback<CellDataFeatures<AbstractParameter<?>, String>, ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<AbstractParameter<?>, String> param) {
return new SimpleStringProperty(param.getValue().property().get().toString());
}
});
}
実行時に文字列で毎回定義されたパラメータをキャストせずにジェネリック型Tを表示する他の適切な方法はありますか?
pValueCol.setCellValueFactory(new PropertyValueFactory("generic"));
をし、あなたのモデルでは、このようなメソッドを作成します:
問題は何ですか? –
質問をより具体的かつ明確に編集しました –