需要完成的功能是:
条件:
重要的是说JTree数据来自两个表main-group和sub-group
此处代码:>>按钮
try {
DefaultMutableTreeNode selectedElement = (DefaultMutableTreeNode) TestTree.getSelectionPath().getLastPathComponent();
Object[] row = {selectedElement};
DefaultTableModel model = (DefaultTableModel) myTests_table.getModel();
System.out.println(String.valueOf(row).toString() + "Hi");
if (selectedElement.isLeaf() == true) {
//model.addRow(row);
// retrive date from DB price
String sql = "SELECT sub_group.name AS 'name', sub_group.price AS 'price'"
+ "FROM sub_group \n"
+ "where sub_group.name = '" + row + "' ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery(sql);
while (rs.next()) {
myTests_table.setModel(DbUtils.resultSetToTableModel(rs));
}
} else {
JOptionPane.showMessageDialog(null, "Please Choose Test name!", "Error", JOptionPane.WARNING_MESSAGE);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error");
}
逗人 错误在哪里? 感谢
答案 0 :(得分:1)
向JTree
添加TreeSelectionListener
,如图here所示。在听众中,更新TableModel
的{{1}};当JTable
的实现触发了setValueAt()
时,监听表会相应地更新自己。您的表格模型应展开TableModelEvent
,如here所示,并包含AbstractTableModel
。您的Set<Row>
课程应该包含Row
和name
。如果price
实施了Row
,如引用的示例here所示,则Comparable<Row>
会在您调用add()
时自动排除重复项。
答案 1 :(得分:-1)
如果问题是新的TableModel未在UI中反映出来,请使用tableModel.fireTableDataChanged()。