📄 testtable.java~48~
字号:
// 13-3 用 JTable 实 现 数 据 表 格 。package TestTable;import javax.swing.JTable;import javax.swing.table.AbstractTableModel;import javax.swing.JScrollPane;import javax.swing.JFrame;import javax.swing.SwingUtilities;import javax.swing.JOptionPane;import java.awt.*;import java.awt.event.*;import javax.swing.ImageIcon;public class TestTable extends JFrame{ private boolean debug=true; public TestTable() { super("成员记录"); MyTableModel MyModel=new MyTableModel(); JTable table=new JTable(MyModel); table.setPreferredScrollableViewportSize(new Dimension(500,70)); JScrollPane scrollPane=new JScrollPane(table); getContentPane().add(scrollPane,BorderLayout.CENTER); } class MyTableModel extends AbstractTableModel{ final String[] columnNames={"name","position","telephone","monthlypay","married"}; final Object[][] data={ {"wangdong","executive","001",new Integer(5000),new Boolean(false)}, {"lihong","secretary","002",new Integer(5000),new Boolean(true)}, {"kurui","manager","003",new Integer(5000),new Boolean(false)}, {"zhaoxin","safeguard","004",new Integer(5000),new Boolean(true)}, {"chenlei","salesman","005",new Integer(5000),new Boolean(false)} }; // 下面三个方法继承接口 TableModel . public int getColumnCount(){ return columnNames.length; } public int getRowCount(){ return data.length; } public Object getValueAt(int row,int col){ return data[row][col]; } // 下面的方法继承类 AbstractTableModel 。 public String getColumnName(int col){ return columnNames[col]; } public Class getColumnClass(int c){ return getValueAt(0,c).getClass(); } public boolean isCellEditable(int row,int col){ if (col<0) return false; else return true; } public void setValueAt(Object value,int row,int col){ if (debug){ System.out.println("setting value at "+row+","+col+ "(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(Exception e){ System.out.println(e.getMessage()); JOptionPane.showMessageDialog(TestTable.this,"the \""+getColumnName(col) +"\" column accepts only integer values."); } } 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<numRows;i++){ System.out.print(" row "+i+":"); for(int j=0;j<numCols;j++){ System.out.print(" "+data[i][j]); }System.out.println(); }System.out.println("---------------------------"+ "----------------------"); } } public static void main(String[] args) { TestTable f = new TestTable(); f.pack(); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); f.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -