import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumnModel;
public class TypeFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private boolean DEBUG = true;
public TypeFrame(){
super("RecorderOfWorkers");
Main renderer = new Main();
MyTableModel myModel=new MyTableModel();
JTable table=new JTable(myModel);
TableColumnModel cmodel = table.getColumnModel();
for (int i = 0; i < cmodel.getColumnCount(); i++) {
cmodel.getColumn(i).setHeaderRenderer(renderer);
}
table.setPreferredScrollableViewportSize(new Dimension(500,70));
JScrollPane scrollPane=new JScrollPane(table);
getContentPane().add(scrollPane,BorderLayout.CENTER);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
class MyTableModel extends AbstractTableModel{
private static final long serialVersionUID = 1L;
final String[] columnNames ={"First Name","Postion","单件数量","MonthlyPay","Married"};
final Object[][] data={{"Wangdong","Executive","0106879231",new Integer(5000),new Boolean(false)},
{"LiHong","Secretay","0106879231",new Integer(3500),new Boolean(true)},
{"ZhaoXin","Safeguard","0106879231",new Integer(4500),new Boolean(false)},
{"Chenlei","Saleman","0106879231",new Integer(4000),new Boolean(false)}};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col){
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c){
return getValueAt(0,c).getClass();
}
public boolean isCellEditable(int row,int col){
if(col<2){
return false;
}else{
return true;
}
}
public void setValueAt(Object value,int row,int col){
if(DEBUG){
System.out.println("Setting value at "+row+","+col+" to "+value+"(an instance of "+value.getClass()+")");
}
if(data[0][col] instanceof Integer&&!(value instanceof Integer)){
try{
data[row][col]=new Integer(value.toString());
fireTableCellUpdated(row,col);
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(TypeFrame.this,"11111");
}
}else{
data[row][col]=value;
fireTableCellUpdated(row,col);
}
if(DEBUG){
System.out.println("New value of data:");
printDebugData();
}
}
private void printDebugData(){
int numRows=getRowCount();
int numCols=getColumnCount();
for(int i=0;i
System.out.print("row"+i+":");
for(int j=0;j
System.out.print(" "+data[i][j]);
}
System.out.println();
}
}
}
public static void main(String[] args) {
TypeFrame frame=new TypeFrame();
frame.pack();
frame.setVisible(true);
}
}