这是我第一次使用java绑定,所以我创建了这个方法来帮助我。如何更改jtable的绑定属性列名?
public static final void BindTableToFields(JTable Table, Object[] Fields) {
for (Object Field : Fields) {
if (Field instanceof JTextField) {
JTextField jTextField = (JTextField) Field;
BeanProperty<JTable, Object> tableBeanProperty;
BeanProperty<JTextField, String> textFieldProperty;
Binding<JTable, Object, JTextField, String> binding;
tableBeanProperty = BeanProperty.create("selectedElement." + jTextField.getText());
textFieldProperty = BeanProperty.create("text");
binding = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, Table, tableBeanProperty, jTextField, textFieldProperty);
binding.bind();
}
}
return;
}
现在,当我去我的设计框架和我在我的JTextField的文本属性设置为“列1”成功的结合工作。
我试着用这段代码重命名我所有的JTable列名。
public static ResultSet FillTableDataFromQuery(String Query, JTable table) throws SQLException {
ResultSet rs = SQLTools.ExecuteQuery(Query);
DefaultTableModel defaultTableModel = new DefaultTableModel();
// Filling table model with data from database
// ... (cutting irrelevant code)
table.setModel(defaultTableModel);
for (int i = 0; i < table.getColumnCount(); i++) {
table.getColumn(table.getColumnName(i)).setIdentifier(heads[i]);
}
return rs;
}
我在填充JTable的数据,然后使用绑定方法。
public final void InitFrame() throws SQLException {
jtable1RS = FillTableDataFromQuery("SELECT * FROM users ;", jTable1);
JTableSQLTool.HideColumns(jTable1, new int[] { 0, 1, 3 });
JTableSQLTool.BindTableToFields(jTable1, new Object[] { JTF_ID, JTF_PAss, JTF_Profile, JTF_User });
}
下面的这幅图说明了我的结果。
现在我的问题,是有没有办法更改表列属性名称从selectedElement.column1
到selectedElement.ID
?这将使我的设计更加重要。
我试图在第二种方法中使用此代码将column1
重命名为ID
但它不起作用。
for(int i = 0; i < table.getColumnCount(); i++) {
table.getColumn(table.getColumnName(i)).setIdentifier(heads[i]);
}
头是一个包含所有我的期望列属性的新文本 –
反向engeneering一整天后的数组我发现,在一个JTable每个所选行是一个HashMap至极的结合转换器将接收 此HashMap被构造为柱[我] - >值[我]为每个元素,我认为我们为什么要录制{selectedElement.column [i]}。 现在有没有办法访问这个哈希映射并改变它的结构?在桌子创作阶段? –
这个问题并不十分清楚。你想改变表头中的文字吗?当你选择一行时,数据将进入文本字段?文本框是否应该编辑表中选定的数据?什么不行?此外,它有点难以阅读,在命名变量,方法和类时,我会推荐以下[骆驼案例](http://www.javatpoint.com/java-naming-conventions)。 –