如何在 Javafx 中用 Arraylist 填充表列
How to fill a tablecolumn with an Arraylist in Javafx
我正在尝试用字符串 ArrayList 填充 table 列。通常我知道如何用对象属性填充它,但在我的例子中我只需要用 ArrayList 中的字符串填充它。
我该怎么做?
通过我得到的答案,它似乎不起作用:(
table = new TableView(FXCollections.observableArrayList(id));
linkC.setCellValueFactory((p) -> {
return new ReadOnlyStringWrapper(p.getValue());
});
示例如下:
List<Double> doubles = new ArrayList<Double>();
doubles.add(12.12d);
ObservableList<Double> names = FXCollections.observableArrayList(doubles);
ListView<Double> listView = new ListView<Double>(names);
有可能,只是未必是最好的主意。表格旨在与 class 数据一起使用。单列 table 只是一个列表。
import java.util.ArrayList;
import java.util.Arrays;
import javafx.application.Application;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;
public class TableTest extends Application {
public static void main(String[] args) { launch(args); }
@Override
public void start(Stage stage) {
TableView<String> tv = new TableView(FXCollections.observableArrayList(
new ArrayList<String>(Arrays.asList(new String[]{
"a","bb","ccc","dddd","eeeee"
}))));
TableColumn<String, String> tc = new TableColumn<>("string");
tc.setCellValueFactory((p) -> {
return new ReadOnlyStringWrapper(p.getValue());
});
tv.getColumns().add(tc);
stage.setScene(new Scene(tv));
stage.show();
}
}
我正在尝试用字符串 ArrayList 填充 table 列。通常我知道如何用对象属性填充它,但在我的例子中我只需要用 ArrayList 中的字符串填充它。 我该怎么做?
通过我得到的答案,它似乎不起作用:(
table = new TableView(FXCollections.observableArrayList(id));
linkC.setCellValueFactory((p) -> {
return new ReadOnlyStringWrapper(p.getValue());
});
示例如下:
List<Double> doubles = new ArrayList<Double>();
doubles.add(12.12d);
ObservableList<Double> names = FXCollections.observableArrayList(doubles);
ListView<Double> listView = new ListView<Double>(names);
有可能,只是未必是最好的主意。表格旨在与 class 数据一起使用。单列 table 只是一个列表。
import java.util.ArrayList;
import java.util.Arrays;
import javafx.application.Application;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;
public class TableTest extends Application {
public static void main(String[] args) { launch(args); }
@Override
public void start(Stage stage) {
TableView<String> tv = new TableView(FXCollections.observableArrayList(
new ArrayList<String>(Arrays.asList(new String[]{
"a","bb","ccc","dddd","eeeee"
}))));
TableColumn<String, String> tc = new TableColumn<>("string");
tc.setCellValueFactory((p) -> {
return new ReadOnlyStringWrapper(p.getValue());
});
tv.getColumns().add(tc);
stage.setScene(new Scene(tv));
stage.show();
}
}