❶ jTree与jTable的联合应用(最好是3层架构)
<dl class="code"><型辩困dt>java code</dt><dd><pre>
<!--
Code highlighting proced by Actipro CodeHighlighter (freeware)
www CodeHighlighter.com/
-->try
{
String sql="select * from table";
rs=connect.getResultSet(sql);
while(rs.next())
{
Vector vector=new Vector();
vector.add(rs.getString(1).toString());
vector.add(rs.getString(2).toString());
((DefaultTableModel)jTable1.getModel()).addRow(vector);
}
rs.close();
}
catch (Exception se)
{
}
</pre></dd></dl>
具体怎么从连接、查询你灶高自己写。
嗯,不错,学习学习
前些日子用过DefaultTableModel和JTree这一部分
基本y而是如此的结构吧,不过楼主说的三层架构是啥意思呢
更卜念详细的解决办法参考 :
http://passport..com/?logout&u=http%3A//..com.jishu6.cn/java/%3fa=1.81118455123
❷ java基于数据库建树
重新帮你写了数据库相关的语句。
但戚大是你必须得做响应的修改才能使用。
importjava.sql.Connection;
importjava.sql.PreparedStatement;
import兆仔java.sql.ResultSet;
importjava.sql.SQLException;
importjavax.swing.JFrame;
importjavax.swing.JScrollPane;
importjavax.swing.JTree;
importjavax.swing.tree.DefaultMutableTreeNode;
{
{
publicMyTreeNode(Objectobj){
super(obj);
}
publicMyTreeNode(MyTreeNodeparent,Objectobject){
super(object);
parent.add(this);
}
(Objectobj){
for(inti=0;i<getChildCount();i++){
MyTreeNodenode=(MyTreeNode)getChildAt(i);
if(node.valueEquals(obj)){
returnnode;
}
}
returnnewMyTreeNode(this,obj);
}
publicbooleanvalueEquals(Objectobj){
returngetUserObject().equals(obj);
}
}
privateMyTreeNoderootNode;
publicstaticvoidmain(String[]args){
newSwingTree();
}
publicSwingTree(){
this.setTitle("SwingTree");
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
initNode();
JTreetree=newJTree(rootNode);
this.add(newJScrollPane(tree));
this.setVisible(true);
}
privatevoidinitNode(){
rootNode=newMyTreeNode("清华大学");
try{
Stringsql="select*fromstudent_t";
PreparedStatementpreStmt族仔汪=getConnection().prepareStatement(sql);
ResultSetquery=preStmt.executeQuery();
while(query.next()){
Stringcollege=query.getString("college");
Stringdepartment=query.getString("department");
Stringclazz=query.getString("clazz");
Stringstudent=query.getString("student");
student+=""+query.getString("phone");
addNode(college,department,clazz,student);
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicConnectiongetConnection(){
returnnull;
}
publicvoidaddNode(Stringcollege,Stringdepartment,Stringclazz,Stringstudent){
rootNode.findOrAddChild(college)
.findOrAddChild(department)
.findOrAddChild(clazz)
.findOrAddChild(student);
}
}
❸ JTree,如何用递归算法构建树
public void addChild(DefaultMutableTreeNode fatherNode,int fatherId) {
List<Map>list=codeservices.getAssetCode( fatherId);
for(Map map:list){
DefaultMutableTreeNode child=new DefaultMutableTreeNode((String)map.get("TYPENAME"));
int id=Integer.parseInt((String)map.get("TYPEID"枣嫌));
fatherNode.add(child);
addChild(child,id);
}
}
其中list是从数据库获取的所有节点,返岩让fatherNode是根节点,fatherid是父id,后面的id是自身漏局节点id
❹ 在JFrame中建了一个JTree和JTable,想从树中随便点击一项查询,就从数据库中调出数据,然后在插入JTable表
代码我也不会,说下思路:
在Tree上做监迟册伏听,点击某一项后,把查姿信询数据,插进相应的model,jTable.setModel(model)。
步骤1、做JTree的事件监听器,有操作就
步骤2、新建类 MyTableModel extends DefaultTableModel {
public void addData() { };
} 这个类码携就是用来保存数据的
步骤3、jTable.setModel(new MyTableModel());
jTable.setVisible(true);
❺ java问题,怎样从数据库动态获得jtree节点
一句两句说不清楚,给个代码大家交流哈,我也是虚返学编程的
import java.sql.*;
import java.io.*;
public class Test13{
public static void main(String[] args) throws Exception{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:folkmusic");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from main");
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn1 = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:java","java1","test123"正誉凳);
//conn1.setAutoCommit(false);
while(rs.next()){
String content = rs.getString("content");
BufferedWriter bw = new BufferedWriter(new FileWriter("tmpfile.txt"举旅));
bw.write(content);
bw.flush();
bw.close();
PreparedStatement stmt1 = conn1.prepareStatement("insert into main (content) values (?)");
InputStream is = new FileInputStream(new File("tmpfile.txt");
stmt1.setBinaryStream(1,is,is.available());
stmt1.executeUpdate();
}
//conn1.commit();
rs.close();
//stmt1.close();
}
};
❻ java 已经获取某个mysql数据库的所有表名 创建JTree
那只能创建一层的JTree?
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjavax.swing.JFrame;
importjavax.swing.JTree;
importjavax.swing.tree.DefaultMutableTreeNode;
{
privateConnectioncon;
privateStatementste=null;
ResultSetrs;
JTreeDemo2(){
super("JTreeDemo");
this.setSize(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
OpenDb();
DefaultMutableTreeNodenode=newDefaultMutableTreeNode("所有表");
createNodes(node,"0");
JTreetree=newJTree(node);
this.add(tree);
this.setVisible(true);
}
publicvoidcreateNodes(DefaultMutableTreeNodeparent,StringParentID){
DefaultMutableTreeNodetemp=null;
Stringstrsql="showtables";
//光标的相对位置
try{
rs=ste.executeQuery(strsql);
while(rs.next()){
temp=newDefaultMutableTreeNode(rs.getString(1));
parent.add(temp);
}
}catch(Exceptione){
System.out.println(e);
}
}
//连接数据库
voidOpenDb(){
Stringdriver="com.mysql.jdbc.Driver";
Stringconnection="jdbc:mysql://localhost:3306/test";
//数据库用户名
Stringuser="root";
//数据库密码
Stringpassword="root";
try{
Class.forName(driver);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
try{
con=DriverManager.getConnection(connection,user,password);
ste=con.createStatement();
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]argv)throwsException{
newJTreeDemo2();
}
}
❼ 在JFrame中建了一个JTree和JTable,想从树中随便点击一项查询,就从数据库中调出数据,然后在插入JTable表
您说的我明白,但是不明白您要问啥,不会全套都让我写吧!
❽ 在NetBeans的GUI设计中,如何将Access中的数据库填充进JTree(树)中 如何用数据库的数据初始化Jtree
别积聚
你的长裙絮游厅语,像一朵雪花莲
多么响亮的音色--灶拿
你说你害怕伤害,
纵使,在风雨中落中
总你的神辩隐翻过石头,
❾ 谁能详细介绍一下java swing里的JTable JTree是怎样用的以及他们的方法!
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都是用于显示和编辑文档的包。
❿ java读取数据库文件以树的形式显示在界面上,swing
程序写好了,而且实现了延时加载。以免启动速度过慢。
import java.io.File;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.MutableTreeNode;
public class TreeFrame extends JFrame {
private JTree tree;
public static void main(String[] args) {
new TreeFrame();
}
public TreeFrame() {
this.setSize(800, 600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
tree = new JTree();
tree.addTreeExpansionListener(new TreeExpansionAction());
setRootDir(new File("c:/windows"));
this.add(new JScrollPane(tree));
this.setVisible(true);
}
private void setRootDir(File dir) {
tree.setModel(new DefaultTreeModel(createNode(dir)));
MutableTreeNode rootNode = (MutableTreeNode) tree.getModel().getRoot();
rootNode.setUserObject(dir);
updateNode(rootNode);
tree.updateUI();
}
private void updateNode(Object object) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) object;
for (int i = 0; i < node.getChildCount(); i++) {
DefaultMutableTreeNode node2 = (DefaultMutableTreeNode) node.getChildAt(i);
FileObject fileObject = (FileObject) node2.getUserObject();
if (!fileObject.isUpdated()) {
fileObject.setUpdated(true);
File file = fileObject.getFile();
if (file.isDirectory()) {
addSubFile(node2, file);
}
}
}
}
public MutableTreeNode createNode(File dir) {
DefaultMutableTreeNode node = new DefaultMutableTreeNode(new FileObject(dir));
if (dir.isDirectory()) {
addSubFile(node, dir);
}
return node;
}
private void addSubFile(DefaultMutableTreeNode node, File dir) {
File[] files = dir.listFiles();
if (files != null) {
for (File file : files) {
node.add(new DefaultMutableTreeNode(new FileObject(file)));
}
}
}
public class TreeExpansionAction implements TreeExpansionListener {
public void treeExpanded(TreeExpansionEvent event) {
updateNode(event.getPath().getLastPathComponent());
}
public void treeCollapsed(TreeExpansionEvent event) {
}
}
public class FileObject {
private File file;
private boolean updated;
public FileObject(File file) {
this.file = file;
}
public File getFile() {
return file;
}
public boolean isUpdated() {
return updated;
}
public void setUpdated(boolean updated) {
this.updated = updated;
}
public String toString() {
return file.getName();
}
}
}