该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.DefaultTableColumnModel;
class DefTabMod extends DefaultTableModel{
DefTabMod ( Vector> datavec, Vector ColumnNameVec){
super(datavec, ColumnNameVec);
}
public void removeColumn(int index){
for(int i=0;i
((Vector)dataVector.get(i)).removeElementAt(index);
}
String columnName = this.getColumnName(index);
this.columnIdentifiers.remove(columnName);
fireTableStructureChanged();
}
}
class JTableDemo extends JFrame implements ActionListener {
String btns[] = "删除行 删除列 添加行 添加列 合并 编辑".split(" "); 
String cols_name[] = "BLUE YELLO GLASS ORANGE BLACK APPLE PINK WHITE".split(" ");
Vector cols_vec = new Vector(); //列名称向量
Vector> row_data = new Vector(); //主数据向量
Vector new_vecColumns = new Vector(); //一个新列
JButton btn[] = new JButton[btns.length];
JTextField text1 = new JTextField(35);
JTable table;  int rowCnt =32;
DefTabMod deftabmod;
JTableDemo(){           //========================================//
for(int i=0;i
if(i
cols_vec.addElement(cols_name[i]);
new_vecColumns.addElement(cols_name[i]);
}
Vector rowVec = new Vector();
for(int j=0;j
String vals = ((char)((i+65))) + cols_name[j].toLowerCase();
rowVec.addElement( vals );
}
row_data.addElement(rowVec);
}
JPanel northpan = new JPanel(new GridLayout(1,6) );
for(int i=0;i
btn[i] = new JButton(btns[i]);btn[i].addActionListener(this);northpan.add(btn[i]);
} add(northpan,"North"); //========================================//
deftabmod = new DefTabMod(row_data,cols_vec); //装入模型
table = new JTable(deftabmod); //装入JTable
add(text1,"South");
add(new JScrollPane(table,22,32),"Center");
}
public void actionPerformed(ActionEvent e){
String c = e.getActionCommand();
if(c.equals("删除行")){
int rowcount = deftabmod.getRowCount();
if(rowcount>=0){
deftabmod.removeRow( table.getSelectedRow() );
}
}
if(c.equals("删除列")){
deftabmod.removeColumn( table.getSelectedColumn() );
}
if(c.equals("添加列")){
deftabmod.addColumn( "Column列", new_vecColumns );
}
if(c.equals("添加行")){
deftabmod.insertRow(table.getSelectedRow(),new_vecColumns );
}
}
public static void main(String[] ag){
JTableDemo blue2 = new JTableDemo();
blue2.setDefaultCloseOperation(3);
blue2.setBounds(100,50,520,400);
blue2.setVisible(true);
}
}