那只能创建一层的JTree ?
import java.sql.Connectionimport java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
import javax.swing.JFrame
import javax.swing.JTree
import javax.swing.tree.DefaultMutableTreeNode
public class JTreeDemo2 extends JFrame {
private Connection con
private Statement ste = null
ResultSet rs
JTreeDemo2() {
super("JTreeDemo")
this.setSize(200, 200)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
OpenDb()
DefaultMutableTreeNode node = new DefaultMutableTreeNode("所有表")
createNodes(node, "0")
JTree tree = new JTree(node)
this.add(tree)
this.setVisible(true)
}
public void createNodes(DefaultMutableTreeNode parent, String ParentID){
DefaultMutableTreeNode temp = null
String strsql = "show tables"
// 光标的相对位置
try{
rs = ste.executeQuery(strsql)
while (rs.next()){
temp = new DefaultMutableTreeNode(rs.getString(1))
parent.add(temp)
}
} catch(Exception e){
System.out.println(e)
}
}
// 连接数据库
void OpenDb(){
String driver = "com.mysql.jdbc.Driver"
String connection = "jdbc:mysql://localhost:3306/test"
// 数据库用户名
String user = "root"
// 数据库密码
String password = "root"
try {
Class.forName(driver)
}catch (ClassNotFoundException e) {
e.printStackTrace()
}
try{
con = DriverManager.getConnection(connection, user, password)
ste = con.createStatement()
}catch (SQLException e){
e.printStackTrace()
}
}
public static void main(String[] argv) throws Exception {
new JTreeDemo2()
}
}
Swing是由100%纯Java实现的,Swing组件是用Java实现的轻量级( light-weight)组件,没有本地代码,不依赖 *** 作系统的支持,这是它与AWT组件的最大区别。由于AWT组件通过与具体平台相关的对等类(Peer)实现,因此Swing比AWT组件具有更强的实用性。Swing在不同的平台上表现一致,并且有能力提供本地窗口系统不支持的其它特性。Swing采用了一种MVC的设计范式,即"模型-视图-控制"(Model-View-Controller),其中模型用来保存内容,视图用来显示内容,控制器用来控制用户输入。
在AWT组件中,由于控制组件外观的对等类与具体平台相关,使得AWT组件总是只有与本机相关的外观。Swing使得程序在一个平台上运行时能够有不同的外观。用户可以选择自己习惯的外观。
7.1.2 Swing的类层次结构
在javax.swing包中,定义了两种类型的组件:顶层容器(JFrame,JApplet,JDialog和JWindow)和轻量级组件。Swing组件都是AWT的Container类的直接子类和间接子类。
java.awt.Component
-java.awt.Container
-java.awt.Window
-java.awt.Frame-javax.swing.JFrame
-javax.Dialog-javax.swing.JDialog
-javax.swing.JWindow
-java.awt.Applet-javax.swing.JApplet
-javax.swing.Box
-javax.swing.Jcomponet
swing包是Swing提供的最大包,它包含将近100个类和25个接口,几乎所有的Swing组件都在swing包中,只有JtableHeader和 JtextComponent是例外,它们分别在swing.table和swing.text中。
swing.border包中定义了事件和事件监听器类,与AWT的event包类似。它们都包括事件类和监听器接口。
swing.pending包包含了没有完全实现的Swing组件。
swing.table包中主要包括了表格组建(JTable)的支持类。
swing.tree同样是JTree的支持类。
swing.text、swing.text.html、swing.text.html.parser和swing.text.rtf都是用于显示和编辑文档的包。
这是以前写的程序中的一段代码public void UpdateTable(){
jTable1Model = new DefaultTableModel(cd.AfficherContactsGraphique(),new String[] { "ID", "TEL", "NOM", "PRENOM" })/*cd.AfficherContactGraphique()返回的是String[][],是你想在jTable中显示的东西, 后面new string的数组是jTable上第一行上显示的各列的名称*/
jTable1 = new JTable()
jScrollPane1.setViewportView(jTable1)/*这里我将jTable放在一个jScrollPane里面*/
jTable1.setModel(jTable1Model)
jTable1.setPreferredSize(new java.awt.Dimension(500,cd.AfficherContactsGraphique().length*16))/*500是宽度,后面的是返回数字的长度,用来定义jTable的长度*/
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)