editableheadertableexample2.java

来自「tame,扩展了好多SWing组件:JTable」· Java 代码 · 共 85 行

JAVA
85
字号
/* (swing1.1.1) */package tame.examples;import java.awt.Component;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.DefaultCellEditor;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.TableCellRenderer;import javax.swing.table.TableColumnModel;import tame.table.EditableHeader;import tame.table.EditableHeaderTableColumn;/**@author Nobuo Tamemasa@version 1.0 08/22/99*/public class EditableHeaderTableExample2 extends JFrame {  public EditableHeaderTableExample2(){    super( "EditableHeader Example" );    JTable table = new JTable(7, 5);    TableColumnModel columnModel = table.getColumnModel();    table.setTableHeader(new EditableHeader(columnModel));    String[] items = {"Dog","Cat"};    JComboBox combo = new JComboBox();    for (int i=0;i<items.length;i++) {      combo.addItem(items[i]);    }    ComboRenderer renderer = new ComboRenderer(items);    EditableHeaderTableColumn col;    // column 1    col = (EditableHeaderTableColumn)table.getColumnModel().getColumn(1);    col.setHeaderValue(combo.getItemAt(0));    col.setHeaderRenderer(renderer);    col.setHeaderEditor(new DefaultCellEditor(combo));    // column 3    col = (EditableHeaderTableColumn)table.getColumnModel().getColumn(3);    col.setHeaderValue(combo.getItemAt(0));    //col.setHeaderRenderer(renderer);    col.setHeaderEditor(new DefaultCellEditor(combo));    JScrollPane pane = new JScrollPane(table);    getContentPane().add(pane);  }  class ComboRenderer extends JComboBox                     implements TableCellRenderer {    ComboRenderer(String[] items) {      for (int i=0;i<items.length;i++) {        addItem(items[i]);      }    }    public Component getTableCellRendererComponent(                 JTable table, Object value,                 boolean isSelected, boolean hasFocus,		 int row, int column) {      setSelectedItem(value);      return this;    }  }  public static void main(String[] args) {    EditableHeaderTableExample2 frame = new EditableHeaderTableExample2();    frame.addWindowListener(new WindowAdapter() {      public void windowClosing(WindowEvent e) {        System.exit(0);      }    });    frame.setSize( 300, 100 );    frame.setVisible(true);  }}

⌨️ 快捷键说明

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