在Netbeans JTree里,原先生成的JTree是一颗假树,可以自己写JTree的初始化函数,再窗口初始化后调用:
- public void treeInitialize()
- {
- DefaultMutableTreeNode root=new DefaultMutableTreeNode("root");
- try{
- m_DBMetaData = m_connection.getMetaData();
- m_tabReset = m_DBMetaData.getTables(null,"%","%",new String[]{"TABLES"});
- while(m_tabReset.next()){
- DefaultMutableTreeNode t_newNode
- = new DefaultMutableTreeNode(m_tabReset.getString("TABLE_NAME"));
- root.add(t_newNode);
- }
- TreeModel treeModel = new DefaultTreeModel(root);
- jDBTree.setModel(treeModel);
- }
- catch(SQLException e){
- JOptionPane.showMessageDialog(this,"数据库访问错误");
- System.exit(1);
- }
- }
此段程序是从数据库中取出表名作为JTree的叶节点。
JTree叶节点双击事件的响应和其Text的获得:
添加MouseClicked事件
- private void jDBTreeMouseClicked(java.awt.event.MouseEvent evt) {
- // TODO 将在此处添加您的处理代码:
- DefaultMutableTreeNode selectedNode
- =(DefaultMutableTreeNode)jDBTree.getLastSelectedPathComponent(); //获取鼠标点击点
- if(selectedNode == null){
- return; //如果不是树上的节点
- }
- if(selectedNode.isLeaf() && evt.getClickCount() == 2){ //确定是叶节点且是双//击事件。
- viewTable(selectedNode.toString()); //参数为节点的Text。
- }
- }
【编辑推荐】