求JTREE的一段代码 我想搞清楚JTREE的作用,怎么才可以实现动态,就像本论坛的一样不过,意思以下就可以了,急救,谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把 结点 对象,动态产生 add到树结点上就可以动态生成了吧 一般弄数据库的时候做的比较多 package com.geostar.client.geosurfEditor;/** * <p>Title: </p> * * <p>Description: </p> * * <p>Copyright: Copyright (c) 2007</p> * * <p>Company: </p> * * @author not attributable * @version 1.0 */import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;public class jTable extends JFrame { JTable table = new JTable(); Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; public jTable() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); //驱动申明 con = DriverManager.getConnection( "jdbc:oracle:thin:@cdfn01:1521:cdfn01", "erpcn", "erpcn"); //建立链接 String sql = "select * from emp"; //查询语句 pstmt = con.prepareStatement(sql); rs = pstmt.executeQuery(); } catch (Exception e) { System.out.println(e.toString()); } ((DefaultTableModel) table.getModel()).setDataVector(getdata(), gettitle()); JScrollPane jsp = new JScrollPane(table); getContentPane().add(jsp); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setVisible(true); } private Vector gettitle() { try { ResultSetMetaData rsm = rs.getMetaData(); Vector title = new Vector(); for (int i = 1; i <= rsm.getColumnCount(); i++) { title.add(rsm.getColumnName(i)); } return title; } catch (Exception e) { System.out.println(e.toString()); } return new Vector(); } private Vector getdata() { try { ResultSetMetaData rsm = rs.getMetaData(); Vector data = new Vector(); while (rs.next()) { Vector row = new Vector(); for (int i = 1; i <= rsm.getColumnCount(); i++) { row.add(rs.getObject(i)); } data.add(row); } return data; } catch (Exception e) { System.out.println(e.toString()); } return new Vector(); } public static void main(String args[]) { new jTable(); }} //我是个初学者,这是我自己用JTree写的一个文件系统的一个树形结构,你可以看看package systemtree;import java.awt.BorderLayout;import java.awt.Dimension;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTree;import javax.swing.tree.DefaultMutableTreeNode;import java.io.File;import javax.swing.event.TreeExpansionEvent;import javax.swing.event.TreeExpansionListener;import javax.swing.tree.*;import javax.swing.event.TreeWillExpandListener;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;/** * <p>Title: </p> * * <p>Description: </p> * * <p>Copyright: Copyright (c) 2007</p> * * <p>Company: </p> * * @author ch * @version 1.0 */public class SystemTreeFrame extends JFrame { JPanel contentPane; BorderLayout borderLayout1 = new BorderLayout(); JScrollPane jScrollPane1 = new JScrollPane(); DefaultMutableTreeNode root=new DefaultMutableTreeNode("我的电脑"); DefaultTreeModel tm=new DefaultTreeModel(root); JTree jtsystem=new JTree(tm); public SystemTreeFrame() { try { setDefaultCloseOperation(EXIT_ON_CLOSE); jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } /** * Component initialization. * * @throws java.lang.Exception */ private void jbInit() throws Exception { contentPane = (JPanel) getContentPane(); contentPane.setLayout(borderLayout1); setSize(new Dimension(404, 314)); setTitle("文件系统的树型目录"); jtsystem.addTreeSelectionListener(new SystemTreeFrame_jtsystem_treeSelectionAdapter(this)); contentPane.add(jScrollPane1, java.awt.BorderLayout.CENTER); File[] disk=File.listRoots(); for(int i=0;i<disk.length;i++) { DefaultMutableTreeNode d=new DefaultMutableTreeNode((char)((int)'C'+i)+":"); root.add(d); d.add(new DefaultMutableTreeNode(null)); } tm.reload(root); jtsystem.addTreeWillExpandListener(new SystemTreeFrame_jtsystem_treeWillExpandAdapter(this)); jScrollPane1.getViewport().add(jtsystem); } private void joinNode(DefaultMutableTreeNode parNode,File file) { DefaultMutableTreeNode node=new DefaultMutableTreeNode(file.getName()); if(file.isDirectory()) { node.add(new DefaultMutableTreeNode(null)); } parNode.add(node); } public void jtsystem_treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException { TreePath tp=event.getPath(); DefaultMutableTreeNode node=(DefaultMutableTreeNode)tp.getLastPathComponent(); if(node.isRoot()) { this.setTitle(node.toString()); return; } node.removeAllChildren(); Object[] objlist=tp.getPath(); StringBuffer fpath=new StringBuffer(); for(int i=1;i<objlist.length;i++) { fpath.append(objlist[i].toString()+"\\"); } File f=new File(fpath.toString()); File[] flist=f.listFiles(); for(int i=0;i<flist.length;i++) { joinNode(node,flist[i]); } tm.reload(node); jtsystem.setSelectionPath(tp); this.setTitle(fpath.toString()); } public void jtsystem_valueChanged(TreeSelectionEvent e) { TreePath tp=e.getPath(); Object[] objlist=tp.getPath(); DefaultMutableTreeNode node=(DefaultMutableTreeNode)tp.getLastPathComponent(); if(node.isRoot()) { this.setTitle(node.toString()); return; } StringBuffer fpath=new StringBuffer(); for(int i=1;i<objlist.length;i++) { fpath.append(objlist[i].toString()+"\\"); } this.setTitle(fpath.substring(0,fpath.length()-1)); }}class SystemTreeFrame_jtsystem_treeWillExpandAdapter implements TreeWillExpandListener { private SystemTreeFrame adaptee; SystemTreeFrame_jtsystem_treeWillExpandAdapter(SystemTreeFrame adaptee) { this.adaptee = adaptee; } public void treeWillExpand(TreeExpansionEvent event) { try { adaptee.jtsystem_treeWillExpand(event); } catch (javax.swing.tree.ExpandVetoException exception0) { exception0.printStackTrace(); } } public void treeWillCollapse(TreeExpansionEvent event) { }}class SystemTreeFrame_jtsystem_treeSelectionAdapter implements TreeSelectionListener { private SystemTreeFrame adaptee; SystemTreeFrame_jtsystem_treeSelectionAdapter(SystemTreeFrame adaptee) { this.adaptee = adaptee; } public void valueChanged(TreeSelectionEvent e) { adaptee.jtsystem_valueChanged(e); }} 父类声明输出子类对象 问题? 将字符串完全反转---大公司简单面试题--分享 这两个有啥区别?是不是后一个可以支持中文?? 菜鸟提问~ 虚心求教:怎样用java实现跨防火墙的长连接? 问:关于ResultSet Update的 提问? 救命啊 各位大侠帮忙啊!!!!!!!!!!!!!!!!!!!!! 关系小弟的前途和命运,各位都近来帮帮忙………… java指针相关 正则表达式问题 请高手指教 这种写法是unix下的吧 $cat 是啥意思 #!呢
一般弄数据库的时候做的比较多
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Vector;import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;public class jTable extends JFrame {
JTable table = new JTable();
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null; public jTable() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); //驱动申明
con = DriverManager.getConnection(
"jdbc:oracle:thin:@cdfn01:1521:cdfn01", "erpcn", "erpcn"); //建立链接
String sql = "select * from emp"; //查询语句
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
} catch (Exception e) {
System.out.println(e.toString());
}
((DefaultTableModel) table.getModel()).setDataVector(getdata(),
gettitle());
JScrollPane jsp = new JScrollPane(table);
getContentPane().add(jsp);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
} private Vector gettitle() {
try {
ResultSetMetaData rsm = rs.getMetaData();
Vector title = new Vector();
for (int i = 1; i <= rsm.getColumnCount(); i++) {
title.add(rsm.getColumnName(i));
}
return title;
} catch (Exception e) {
System.out.println(e.toString());
}
return new Vector();
} private Vector getdata() {
try {
ResultSetMetaData rsm = rs.getMetaData();
Vector data = new Vector();
while (rs.next()) {
Vector row = new Vector();
for (int i = 1; i <= rsm.getColumnCount(); i++) {
row.add(rs.getObject(i));
}
data.add(row);
}
return data;
} catch (Exception e) {
System.out.println(e.toString());
}
return new Vector();
} public static void main(String args[]) {
new jTable();
}
}
package systemtree;import java.awt.BorderLayout;
import java.awt.Dimension;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.File;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.tree.*;
import javax.swing.event.TreeWillExpandListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author ch
* @version 1.0
*/
public class SystemTreeFrame extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JScrollPane jScrollPane1 = new JScrollPane();
DefaultMutableTreeNode root=new DefaultMutableTreeNode("我的电脑");
DefaultTreeModel tm=new DefaultTreeModel(root);
JTree jtsystem=new JTree(tm);
public SystemTreeFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
setSize(new Dimension(404, 314));
setTitle("文件系统的树型目录");
jtsystem.addTreeSelectionListener(new
SystemTreeFrame_jtsystem_treeSelectionAdapter(this));
contentPane.add(jScrollPane1, java.awt.BorderLayout.CENTER);
File[] disk=File.listRoots();
for(int i=0;i<disk.length;i++)
{
DefaultMutableTreeNode d=new DefaultMutableTreeNode((char)((int)'C'+i)+":");
root.add(d);
d.add(new DefaultMutableTreeNode(null)); }
tm.reload(root);
jtsystem.addTreeWillExpandListener(new
SystemTreeFrame_jtsystem_treeWillExpandAdapter(this));
jScrollPane1.getViewport().add(jtsystem);
}
private void joinNode(DefaultMutableTreeNode parNode,File file)
{
DefaultMutableTreeNode node=new DefaultMutableTreeNode(file.getName());
if(file.isDirectory())
{
node.add(new DefaultMutableTreeNode(null));
}
parNode.add(node);
} public void jtsystem_treeWillExpand(TreeExpansionEvent event) throws
ExpandVetoException {
TreePath tp=event.getPath();
DefaultMutableTreeNode node=(DefaultMutableTreeNode)tp.getLastPathComponent();
if(node.isRoot())
{
this.setTitle(node.toString());
return;
}
node.removeAllChildren();
Object[] objlist=tp.getPath();
StringBuffer fpath=new StringBuffer();
for(int i=1;i<objlist.length;i++)
{
fpath.append(objlist[i].toString()+"\\");
}
File f=new File(fpath.toString());
File[] flist=f.listFiles();
for(int i=0;i<flist.length;i++)
{
joinNode(node,flist[i]);
}
tm.reload(node);
jtsystem.setSelectionPath(tp);
this.setTitle(fpath.toString());
}
public void jtsystem_valueChanged(TreeSelectionEvent e) {
TreePath tp=e.getPath();
Object[] objlist=tp.getPath();
DefaultMutableTreeNode node=(DefaultMutableTreeNode)tp.getLastPathComponent();
if(node.isRoot())
{
this.setTitle(node.toString());
return;
}
StringBuffer fpath=new StringBuffer();
for(int i=1;i<objlist.length;i++)
{
fpath.append(objlist[i].toString()+"\\");
}
this.setTitle(fpath.substring(0,fpath.length()-1));
}
}
class SystemTreeFrame_jtsystem_treeWillExpandAdapter implements
TreeWillExpandListener {
private SystemTreeFrame adaptee;
SystemTreeFrame_jtsystem_treeWillExpandAdapter(SystemTreeFrame adaptee) {
this.adaptee = adaptee;
} public void treeWillExpand(TreeExpansionEvent event) {
try {
adaptee.jtsystem_treeWillExpand(event);
} catch (javax.swing.tree.ExpandVetoException exception0) {
exception0.printStackTrace();
}
} public void treeWillCollapse(TreeExpansionEvent event) {
}
}
class SystemTreeFrame_jtsystem_treeSelectionAdapter implements
TreeSelectionListener {
private SystemTreeFrame adaptee;
SystemTreeFrame_jtsystem_treeSelectionAdapter(SystemTreeFrame adaptee) {
this.adaptee = adaptee;
} public void valueChanged(TreeSelectionEvent e) {
adaptee.jtsystem_valueChanged(e);
}
}