我对JavaFX TableView组件有简单的问题。
我想根据数据库表名的不同更改新的TableView列标题。我不想在我的列中使用DB表数据名。
现在我的代码是
public static void OpenMySQLDB(String tablenameid, TableView<?> hallintaTable)
{
hallintaTable.getColumns().clear();
String sql = "select * from" + " " + tablenameid;
ObservableList data = FXCollections.observableArrayList();
try{
MySqlConnect mysqlConnect = new MySqlConnect();
Statement stmt = mysqlConnect.connect().createStatement();
//ResultSet
ResultSet rsHaku = stmt.executeQuery(sql);
for(int i=0 ; i<rsHaku.getMetaData().getColumnCount(); i++){
int j = i;
TableColumn col= new TableColumn(rsHaku.getMetaData().getColumnName(i+1));
col.setCellValueFactory((Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>) param -> new SimpleStringProperty(param.getValue().get(j).toString()));
hallintaTable.getColumns().addAll(col);
}
while(rsHaku.next()){
ObservableList<String> row = FXCollections.observableArrayList();
for(int i=1 ; i<=rsHaku.getMetaData().getColumnCount(); i++){
row.add(rsHaku.getString(i));
}
data.add(row);
}
hallintaTable.setItems(data);
}catch(Exception e){
e.printStackTrace();
}
}
我有一个不同的类,在TableView列中列出我想要的内容
其数据代码如下:
public static String[] admincomboValidator(String tablenameid) {
String[] openadminTableName = new String[0];
switch (tablenameid) {
case "AJOJARJESTELY" -> openadminTableName = new String[]{"ID", "Tunnus", "Salasana"};
case "GOOGLEMAP" -> openadminTableName = new String[]{"Reknro", "Merkki", "Hinta", "Kilometrit", "Renkaat kpl/hinta", "Vuokra/kk.", "AbaxID", "Huoltoväli", "Rengasmäärä"};
case "KULJETTAJAT" -> openadminTableName = new String[]{"Kuljetusetäisyys km", "Ajosuorite km/p", "Ajopäivät /v", "Pitoaika/v", "Polttoaine l/100km", "ADBlue l/100km", "Renkaatkesto/km", "Keikka-aika h/k", "Keikkamäärä /kpl", "Apuaika %", "Palkka /h", "AutoID"};
case "LAHETTAJA" -> openadminTableName = new String[]{"ID", "Poisto %", "Pääomakorko %", "Käyttöpääomakorko %", "Vakuutukset €/v", "Liikennöintimaksut €/v", "Hallintokustannukset €/v", "Ylläpitokustannukset €/v", "Muuajo km/v"};
case "VASTAAOTTAJA" -> openadminTableName = new String[]{"ID", "Polttoaine €/l", "ADBlue €/l", "Voiteluaine €/%", "Korjaus €/%", "Muu tieto"};
default -> System.out.println("Tietoja ei löydy");
}
return openadminTableName;
}
所以它主要返回openadminTableName什么是字符串[]openadminTableName=新字符串[0];
在Java Swing JTable中,它的工作方式如下:
DefaultTableModel aModel = (DefaultTableModel) admintable.getModel();
aModel.getDataVector().removeAllElements();
aModel.setColumnIdentifiers(adminMeth.admincomboValidator(tablenameid, addButton, delButtoon, abaxIDButton, tablenameid));
但是我怎么能做同样的JavaFX TableView组件??
谢谢你的支持。
我找到了解决方案——如果有人需要:
List<String> newColumnsString = adminHallintaController.admincomboValidator(tablenameid);
for(int i=0 ; i<newColumnsString.size(); i++) {
final int j = i;
TableColumn col = new TableColumn(newColumnsString.get(i));
col.setCellValueFactory((Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>) param -> new SimpleStringProperty(param.getValue().get(j).toString()));
hallintaTable.getColumns().addAll(col);
}
问题内容: 蟒蛇 我有一个清单清单。喜欢 我想计算每个列表在主列表中出现了多少次。 我的输出应该像 问题答案: 只需使用来自:
rank ▲ ✰ vote url 45 441 233 760 url 合并列表中的列表 可能重复的问题: Flattening a shallow list in Python Comprehension for flattening a sequence of sequences? 我想是不是有更好的方法 我可以用一个循环来做,但是除了这样做还有什么更cool的用一行来做的方法?我用redu
问题内容: 现在,我想创建一个新列表,其中包含中的所有值。这里的结果应该包含 问题答案: 使用以下方法尝试:
问题内容: 我有一个 清单清单 : 我想转换为一个 集合, 即删除重复列表并从中创建一个仅包含 唯一 列表的新列表。 在上述情况下,所需答案将是 但是当我这样做时,它给了我错误 TypeError:无法散列的类型:“列表” 你能解决我的问题吗?提前致谢! 问题答案: 由于列表是可变的,因此不能进行哈希处理。最好的选择是将它们转换为元组并形成一个集合,像这样 我们一次遍历一个列表,将其转换为一个元组
问题内容: 我在python中有一个由列表列表建模的2D数组,我想提取该列。我进行了快速研究,发现了一种使用numpy数组的方法。问题是 我不想使用numpy, 所以不想将列表列表转换为numpy数组,然后使用[:,1]语法。我尝试在正常的列表列表上使用它,但显示错误,因此是不可能的。我正在为列表列表请求类似的东西,而不必遍历每个元素(在numpy数组中,使用[:,1]语法访问列比在数组元素上进行
问题内容: 过程/输出的示例为: 文件1: 文件2: 串联后的结果文件: 文件3: 对于大量非预期文本(无通配符-但行如上所述对齐)。 我无法弄清楚如何在Ubuntu下使用粘贴命令来做到这一点。 问题答案: