⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a.java

📁 java 北大青鸟 java 北大青鸟
💻 JAVA
字号:

import javax.sql.*;
import java.sql.*;
////import java.rmi.server.*;
//import java.io;
import java.util.*;
import javax.swing.JTable;

import javax.swing.table.AbstractTableModel;

import javax.swing.DefaultCellEditor;
import javax.swing.*;
import javax.swing.table.JTableHeader;


import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import java.awt.*;
import java.awt.event.*;
class A extends JFrame{

A() throws SQLException{	 //对面板进行处理
	super("MyTableDemo");
	
	
     MyTableModel myModel = new MyTableModel();
     myModel.setData();
     JTable table = new JTable(myModel);
   //这个表示清空整个表  table.removeAll()
   /*
    *确保彻底清空表中数据
public void removeAllRow(){
for(int i = 0; i < table.getRowCount(); i++){
table.removeRow(i);
}
if(table.getRowCount() > 0){
removeAllRow();
}
}
 如相再加载可以
 removeRow(int i)
然后再重新addRow(int i)

    **/
   
     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);
            }
        });	}
		
		
	public static void main(String []arg)throws SQLException{
	A a= new A();
	a.setSize(700,700);
a.setVisible(true);
			}

	}
	
		class MyTableModel extends AbstractTableModel{
			/*做连接的初始值处理*/	
	 Connection cn = null;
	 ResultSet rs = null ;
	 Statement stat;
	 ResultSet rs2 = null ;
	 Statement stat2;
	 String DriverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
     
	 String DriverManagerURL = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs";
	 
	 String userName = "sa";
	 String userpassworld ="";
	 //用于下面获得表中记录数
	 int count=0;
	 int i=0;
	 String rows[][];	
	 //下面是以后要用的列名
	String	colName[]={"clentID","clentName","clentAge","clentAdrr"};

	public void setData() throws SQLException {
		//使用桥JDBC-ODBC加ODBC驱动	 String DriverManagerURL="jdbc:odbc:LocalServer";
	try{
		Class.forName(DriverName);
//使用桥JDBC-ODBC加ODBC驱动	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	/*下面是第一种方式时的连接*/
		cn = DriverManager.getConnection(DriverManagerURL,userName,userpassworld);
	
	
	}

	catch(java.lang.ClassNotFoundException e){
	 	System.err.println("ClassNotFoundException:");
		System.err.println(e.getMessage());
		}
		if (cn == null){
            System.err.println("Connection failed...");
            System.exit(0);			
			}
		//下面是用于获得记录的行数	
		stat = cn.createStatement();
		rs = stat.executeQuery("select count(*) from authors");
		
		while(rs.next()){	
		count= rs.getInt(1);
		}

		rows=new String[count][4];
		stat2 = cn.createStatement();
		rs2 = stat2.executeQuery("select * from authors");
		while(rs2.next()){		
		String name = rs2.getString(1);
		rows[i][0]=name;
		i++;
			}
		rs.close();
		stat.close();
			rs2.close();
		stat2.close();
		cn.close();	
		}	
public int getColumnCount() {
            return colName.length;
        }
/**
 *<br>方法说明:继承AbstractTableModel必须实现的方法
 *<br>输入参数:
 *<br>返回类型:int 列数
 */        
        public int getRowCount() {
            return rows.length;
        }
/**
 *<br>方法说明:继承AbstractTableModel必须实现的方法
 *<br>输入参数:
 *<br>返回类型:String 列名
 */
        public String getColumnName(int col) {
            return colName[col];
        }
/**
 *<br>方法说明:继承AbstractTableModel必须实现的方法,获取表格中的数据
 *<br>输入参数:int row 行数
 *<br>输入参数:int col 列数
 *<br>返回类型:Object 数据对象
*/
        public Object getValueAt(int row, int col) {
            return rows[row][col];
        } 		
			
			/**
 *<br>方法说明:实现此方法,获得编辑数据。
 *<br>输入参数:
 *<br>返回类型:
 */
        public void setValueAt(Object value, int row, int col) {
              	rows[row][col] = String.valueOf(value); 
            fireTableCellUpdated(row, col);
//如果要删除行为:fireTableRowsDeleted(int firstRow, int lastRow)
                

        }
			/**
 *<br>方法说明:这个方法不一定需要实现。这里是为了定义可编辑的列
 *<br>输入参数:
 *<br>返回类型:boolean 是否可编辑

        public boolean isCellEditable(int row, int col) {
            if (col < 2) { 
                return false;
            } else {
                return true;
            }
        } */
        //下面这样设置后便能使我们的客户无法修改表中内容
     public boolean isCellEditable(int rowIndex, int columnIndex) {
		return false;	
    }
    	public Class getColumnClass(int c) {
    		if(getValueAt(0, c)!=null)
        	 return getValueAt(0, c).getClass();
        	else
        	 return "".getClass();
    }
    	}

⌨️ 快捷键说明

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