java - 在 tableview Javafx 中添加记录时如何分隔列。重复记录的问题
问题描述
我通过按下按钮添加 TableView 以从 mysql 中提取数据并生成列名。问题在于添加记录。因为它复制了它们。
图形用户界面:
for (Button i : buttonsNameTable) {
i.setOnAction(event1 -> {
int col = database.selectNameColumnt(i.getText()).size();
ArrayList<String> list = database.selectNameColumnt(i.getText());
result.getChildren().add(dynamicTableView.createColumn(col, list, tableView, database.selectAll(i.getText()) ));
类数据库查询:
ObservableList<String> selectAll(String nametable){
ObservableList<String> dataDB = FXCollections.observableArrayList();
String nameTable = StringUtils.capitalize(nametable);
if(nameTable.equals("Filmy")) {
try {
tx.begin();
Query q = pm.newQuery("SELECT FROM " + "model." + nameTable);
List<Filmy> products = q.executeList();
Iterator<Filmy> iter = products.iterator();
while (iter.hasNext()) {
Filmy p = iter.next();
dataDB.add(p.getFilmyId() + " ," + p.getTytulFilmu());
}
tx.commit();
} catch (Exception e) {
System.out.println("nie dodano: " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
}
return dataDB;
}
类 DynamicTableView 生成列和行返回表视图;
public TableView createColumn(int cols, ArrayList<String> nametable, TableView tableview, ObservableList<String> dataDB) {
tableview.getColumns().clear();
try {
for (int i = 0; i < cols; i++) {
final int j = i;
TableColumn col = new TableColumn(nametable.get(i));
col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<String, String>, ObservableValue<String>>() {
public ObservableValue<String> call(TableColumn.CellDataFeatures<String, String> param) {
return new SimpleStringProperty(param.getValue().toString());
}
});
tableview.getColumns().addAll(col);
}
tableview.setItems(dataDB);
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error on Building Data");
}
return tableview;
}
结果:
解决方案
推荐阅读
- docker - 在 Docker 的开发和生产中处理应用程序 .env 文件的最佳实践是什么?
- javascript - react-responsive-carousel 没有正确显示
- android - 移动调试开发环境
- amazon-web-services - 使用什么 AWS 服务作为 OAUTH2 与微服务一起使用
- javascript - 为什么 DOM 我的事件不工作并且样式改变?
- php - 根据 id 从同一个 MySql 表中选择
- kubernetes - 无法访问 Kubenetes 负载均衡器
- r - geom_point() 中的缺失值
- prometheus - PromQL 查询中的动态阈值(组过滤器中使用的两个标签
- python - 根据列表中包含字符串的名称选择熊猫数据框列