managerpanelservice.java

来自「客运售票管理信息系统」· Java 代码 · 共 65 行

JAVA
65
字号
package passengertransportmis;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.table.DefaultTableModel;

public class ManagerPanelService {


	public static void initFromDatabase(javax.swing.JTable table, String sql){
		Connection conn = Database.getConn();
		Statement stmt = Database.createStmt(conn);
		ResultSet rs = null;    
	    try {
			rs = stmt.executeQuery(sql);
			ResultSetMetaData rsmd = rs.getMetaData();
			int columnNo = rsmd.getColumnCount();
			
			String headers[] = new String[columnNo];
			final Class[] types = new Class [columnNo];
			final boolean[] canEdit = new boolean [columnNo];
			for(int i = 0; i<columnNo; i++){
				headers[i] = rsmd.getColumnName(i+1);
				types[i] = Class.forName(rsmd.getColumnClassName(i+1));
				canEdit[i] = false;
			}
			rs.last();//移到最后一行		
			Object[][] tmp = new Object [rs.getRow()][columnNo];			
			rs.beforeFirst();	//移到第一行的前一行		
			int rowNo = 0;
			while(rs.next()){	
				Object[] content = new Object[columnNo];
				for(int i = 0; i<columnNo; i++){
					content[i] = rs.getObject(i+1);
				}
				tmp[rowNo] = content;
				rowNo ++;
			}			
			DefaultTableModel dtm = new DefaultTableModel( tmp, headers
	            ) {public Class getColumnClass(int columnIndex) {
	                    return types [columnIndex];
	                }
	            public boolean isCellEditable(int rowIndex, int columnIndex) {
	                    return canEdit [columnIndex];
	                }                    
	       }; 	       
	       table.setModel(dtm);
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		   
	}

}

⌨️ 快捷键说明

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