首页>代码>java Swing JTable的复杂表格应用实例>/SwingJTable/src/JTable表头换行/TableDemo.java
package JTable表头换行;

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 TableDemo extends JFrame { 

    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private boolean DEBUG = true;
    public TableDemo(){
        super("RecorderOfWorkers");
        HeaderRendererHh renderer = new HeaderRendererHh(); 
        TextAreaHeaderRenderer txtrenderer=new TextAreaHeaderRenderer();
        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);
    	    cmodel.getColumn(i).setHeaderRenderer(txtrenderer);  
    	}
        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{
        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() {
            // TODO Auto-generated method stub
            return columnNames.length;
        } 

        public int getRowCount() {
            // TODO Auto-generated method stub
            return data.length;
        }
        public String getColumnName(int col){
            return columnNames[col];
        }
        public Object getValueAt(int row, int col) {
            // TODO Auto-generated method stub
            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(TableDemo.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<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("---------------------------");
        }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        TableDemo frame=new TableDemo();
        frame.pack();
        frame.setVisible(true);
    } 

} 
最近下载更多
taozhao  LV2 1月20日
深深之蓝  LV1 2024年12月16日
lk-sheep  LV1 2024年12月2日
duanjb  LV1 2024年8月15日
1219610676  LV4 2023年12月7日
1a2s3d4f5g6h  LV1 2023年6月21日
yaowusui  LV1 2023年4月27日
xizi10086  LV2 2023年4月25日
2252536772  LV21 2022年11月9日
微信网友_6187879953633280  LV1 2022年10月23日
最近浏览更多
pxqtsht  LV16 2月21日
taozhao  LV2 1月20日
深深之蓝  LV1 2024年12月16日
lk-sheep  LV1 2024年12月2日
duanjb  LV1 2024年8月15日
2860615178  LV4 2024年5月29日
3334004690  LV10 2024年5月27日
1219610676  LV4 2023年12月7日
李朝磊  LV18 2023年12月3日
yangxb2  LV10 2023年10月20日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友