❶ 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();
}
}
}