java 樹與表心得

在定製表與樹是  模型很重要,定義是千萬不要模糊

如:

       DefaultTableModel mode = new DefaultTableModel();   

       JTable table = new JTable(mode);

在接下來的樹與表相對應的關係中很難一一對應;而且不利於在JSCrollPane中的顯示。


下面這個就是一個很好的方法 ,而且方便樹與表的相互對應,且很容易實現:

DefaultTableModel mode;

JTable table = new JTable();

mode = (DefaultTableModel mode)table.getMOdel();


在接下來的程序中 只需用到模型即可改變表中的格式;


例子:

package TableTree;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.*;


public class TableTree extends JPanel implements TreeSelectionListener  {

 /**
  * @param args
  */
 JPanel myJPanel;
 JTable table;
 JScrollPane myJSTree,myJSTable;
 JTree myJTree;
 DefaultMutableTreeNode root,temp;
 Object NodePath;
 DefaultTreeModel rs;
 String StrPath;
 int row,col;
 TreeSelectionModel  selectionModel;
 DefaultTableModel model;
 JFrame myJFrame;

 public TableTree(){
  
  super();
  myJFrame = new JFrame("TreeTable");

  table = new JTable();
  model = (DefaultTableModel)table.getModel();
  this.setLayout(new BorderLayout());
  this.add(table,BorderLayout.CENTER);
  myJSTable = new JScrollPane(this);
  myJFrame.add(myJSTable,BorderLayout.CENTER);
 
  
  root = new DefaultMutableTreeNode("root");
  temp = new DefaultMutableTreeNode("father");
  temp.add(new DefaultMutableTreeNode("chirld1"));
  temp.add(new DefaultMutableTreeNode("chirld2"));
  temp.add(new DefaultMutableTreeNode("chirld3"));
  temp.add(new DefaultMutableTreeNode("chirld4"));
  temp.add(new DefaultMutableTreeNode("chirld5"));
  root.add(temp);
  rs = new DefaultTreeModel(root);
  
  myJTree = new JTree(rs);
  selectionModel = myJTree.getSelectionModel();
  selectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
  myJTree.addTreeSelectionListener(this);
  myJSTree = new JScrollPane(myJTree);
  
  myJFrame.add(myJSTree,BorderLayout.WEST);
  
  myJFrame.setSize(550,400);
  myJFrame.setLocation(150, 150);
  myJFrame.setVisible(true);
  
  myJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
  
  
 }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章