我有一个 JTree
,其中填充了数据库中的任务列表,我正在尝试创建一个鼠标单击监听器,以便在单击节点时,id 和任务将显示到 JTextfields
中,
下面是我的代码
private void jTree1MouseClicked(java.awt.event.MouseEvent evt) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree1.getLastSelectedPathComponent();
Object nodeInfo = node.getUserObject();
try {
String query = "select * from Task where task=" + nodeInfo + "";
pst = con.prepareStatement(query);
rs = pst.executeQuery();
if (rs.next()) {
int id = rs.getInt("id");
String task = rs.getString("task");
parentIdTxt.setText("" + id);
childTxt.setText("" + task);
}
} catch (Exception e) {
}
}
我的问题是,即使我的程序运行没有任何问题,但每当我单击该节点时,什么也没有发生?任何帮助指出我错过的内容将不胜感激
最佳答案
事实上,您收到错误,但您看不到它,因为您没有打印它,您可以使用以下命令检查错误:
} catch (Exception e) {
e.printStackTrace();
}
字符串应该在'nodeinfo'
之间,所以你必须使用:
String query="select * from Task where task= '" + nodeInfo + "'";
但是你没有正确实现PreparedStatement,你可以使用这个:
String query="select * from Task where task = ?";
insert.setString(1, nodeinfo);
rs = pst.executeQuery();
...
关于java - JTree数据库节点选择并显示在java中的文本字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43390761/