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

📄 columngroup.java

📁 tame,扩展了好多SWing组件:JTable
💻 JAVA
字号:
/* (swing1.1beta3) */package tame.table;import java.awt.Component;import java.awt.Dimension;import java.util.Enumeration;import java.util.Vector;import javax.swing.JLabel;import javax.swing.JTable;import javax.swing.UIManager;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.JTableHeader;import javax.swing.table.TableCellRenderer;import javax.swing.table.TableColumn;/** ColumnGroup.@author Nobuo Tamemasa@version 1.0 10/20/98*/public class ColumnGroup {  protected TableCellRenderer renderer;  protected Vector v;  protected String text;  protected int margin=0;  public ColumnGroup(String text) {    this(null,text);  }  public ColumnGroup(TableCellRenderer renderer,String text) {    if (renderer == null) {      this.renderer = new DefaultTableCellRenderer() {	public Component getTableCellRendererComponent(JTable table, Object value,                         boolean isSelected, boolean hasFocus, int row, int column) {	  JTableHeader header = table.getTableHeader();	  if (header != null) {	    setForeground(header.getForeground());	    setBackground(header.getBackground());	    setFont(header.getFont());	  }          setHorizontalAlignment(JLabel.CENTER);          setText((value == null) ? "" : value.toString());	  setBorder(UIManager.getBorder("TableHeader.cellBorder"));	  return this;        }      };    } else {      this.renderer = renderer;    }    this.text = text;    v = new Vector();  }  /**  param obj    TableColumn or ColumnGroup  */  public void add(Object obj) {    if (obj == null) { return; }    v.addElement(obj);  }  /**  param c    TableColumn  param v    ColumnGroups  */  public Vector getColumnGroups(TableColumn c, Vector g) {    g.addElement(this);    if (v.contains(c)) return g;    Enumeration enum1 = v.elements();    while (enum1.hasMoreElements()) {      Object obj = enum1.nextElement();      if (obj instanceof ColumnGroup) {        Vector groups =          (Vector)((ColumnGroup)obj).getColumnGroups(c,(Vector)g.clone());        if (groups != null) return groups;      }    }    return null;  }  public TableCellRenderer getHeaderRenderer() {    return renderer;  }  public void setHeaderRenderer(TableCellRenderer renderer) {    if (renderer != null) {      this.renderer = renderer;    }  }  public Object getHeaderValue() {    return text;  }  public Dimension getSize(JTable table) {    Component comp = renderer.getTableCellRendererComponent(        table, getHeaderValue(), false, false,-1, -1);    int height = comp.getPreferredSize().height;    int width  = 0;    Enumeration enum1 = v.elements();    while (enum1.hasMoreElements()) {      Object obj = enum1.nextElement();      if (obj instanceof TableColumn) {        TableColumn aColumn = (TableColumn)obj;        width += aColumn.getWidth();        width += margin;      } else {        width += ((ColumnGroup)obj).getSize(table).width;      }    }    return new Dimension(width, height);  }  public void setColumnMargin(int margin) {    this.margin = margin;    Enumeration enum1 = v.elements();    while (enum1.hasMoreElements()) {      Object obj = enum1.nextElement();      if (obj instanceof ColumnGroup) {        ((ColumnGroup)obj).setColumnMargin(margin);      }    }  }}

⌨️ 快捷键说明

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