⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 componenttablemodel.java

📁 java实现浏览器等本地桌面的功能
💻 JAVA
字号:
/* * Created on 20.06.2005 * */package org.jdesktop.demo.swingx.common;import java.awt.Component;import java.awt.Dimension;import java.awt.Point;import java.util.ArrayList;import java.util.Enumeration;import java.util.List;import java.util.Stack;import java.util.Vector;import javax.swing.table.AbstractTableModel;import javax.swing.tree.TreeModel;/** * A static snapshot of a container hierarchy. *  * NOTE: does not listen to any property changes of * contained components - cell updates are arbitrary on * repaint only! *  * @author Jeanette Winzenburg */public class ComponentTableModel extends AbstractTableModel {    public int getRowCount() {        return components.size();    }    public Class getColumnClass(int column) {        switch (column) {        case 0:            return String.class;        case 1:            return Point.class;        case 2:            return Dimension.class;        default:            return Object.class;        }    }        public int getColumnCount() {        return 3;    }    public String getColumnName(int column) {        switch (column) {        case 0:            return "Type";        case 1:            return "Location";        case 2:            return "Size";        default:            return "Column " + column;        }    }        public Object getValueAt(int row, int column) {        Component comp = (Component) components.get(row);        switch (column) {        case 0:            return convertValueToText(comp);        case 1:            return comp.getLocation();        case 2:            return comp.getSize();        default:            return null;        }    }    public boolean isCellEditable(int rowIndex, int columnIndex) {        return false;    }    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {          }    private List components = new ArrayList();        public void updateComponentList(TreeModel model) {        components = new ArrayList();        Enumeration enumeration = new PreorderEnumeration(model);        while (enumeration.hasMoreElements()) {            components.add(enumeration.nextElement());        }        fireTableDataChanged();            }    public String convertValueToText(Object node) {        String className = node.getClass().getName();        int lastDot = className.lastIndexOf(".");        String lastElement = className.substring(lastDot + 1);        return lastElement;    }//  -------------------- helper classes for traversing the tree//  -------------------- c&p from Santhosh Kumar//  --------------------http://jroller.com/page/santhosh/20050607#tree_inside_jcombobox                class ChildrenEnumeration implements Enumeration{           TreeModel treeModel;           Object node;           int index = -1;                  public ChildrenEnumeration(TreeModel treeModel, Object node){               this.treeModel = treeModel;               this.node = node;           }                  public boolean hasMoreElements(){               return index<treeModel.getChildCount(node)-1;           }                  public Object nextElement(){               return treeModel.getChild(node, ++index);           }       }       class PreorderEnumeration implements Enumeration{           private TreeModel treeModel;           protected Stack stack;                  public PreorderEnumeration(TreeModel treeModel){               this.treeModel = treeModel;               Vector v = new Vector(1);               v.addElement(treeModel.getRoot());               stack = new Stack();               stack.push(v.elements());           }                  public boolean hasMoreElements(){               return (!stack.empty() &&                       ((Enumeration)stack.peek()).hasMoreElements());           }                  public Object nextElement(){               Enumeration enumer = (Enumeration)stack.peek();               Object node = enumer.nextElement();               if(!enumer.hasMoreElements())                   stack.pop();               Enumeration children = new ChildrenEnumeration(treeModel, node);               if(children.hasMoreElements())                   stack.push(children);               return node;           }       } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -