java 已经获取某个mysql数据库的所有表名 创建JTree

java 已经获取某个mysql数据库的所有表名 创建JTree,第1张

那只能创建一层的JTree ?

import java.sql.Connection  

import 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都是用于显示和编辑文档的包。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/6462739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存