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

📄 testtablechange.java

📁 使用java编写的一个学生选课系统
💻 JAVA
字号:
package Srs;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.DefaultCellEditor;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;

public class TestTableChange extends JFrame {
	JScrollPane tsp;
    JTable table;    
    public TestTableChange(){
        this.setBounds(400, 400, 400, 400);
        init();
        this.setVisible(true);
    }
    private void init() {
       
        
        String[] col = {"选课","课程编号", "课程名称", "课程说明" ,"授课教师","教师信息","上课时间",
        		"上课地点","人数上限","已选人数"};
        DefaultTableModel model = new DefaultTableModel(col,0);
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载access数据库驱动
           } catch (ClassNotFoundException e1) {
        	System.out.println("加载驱动不成功");
            e1.printStackTrace();
           }
           try{

        	   Connection conn = DriverManager.getConnection(
        		"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=mydb.mdb");
               Statement stmt = conn.createStatement();
               ResultSet rs=stmt.executeQuery("select * from Seletedcourse");
           
              while(rs.next()){
              
              String id = rs.getString("课程编号");
              String name = rs.getString("课程名称");
              String tel = rs.getString("课程说明");
              String teacher = rs.getString("授课教师");
              String teachernews = rs.getString("教师信息");
              String time = rs.getString("上课时间");
              String place = rs.getString("上课地点");
              String upper = rs.getString("人数上限");
              String selected = rs.getString("已选人数");
              Object[] rowData={new JCheckBox(),id,name,tel,teacher,teachernews,time,place,
            		  upper,selected};
              model.addRow(rowData);//添加在表模板中
           }
           }catch(SQLException e1){
        	   System.out.println("连接数据库未成功");
           e1.getStackTrace();
           }
        table = new JTable(model);
        
        TableColumn   column   =   table.getColumnModel().getColumn(0); 
        //设置编辑器 
        column.setCellEditor(new   DefaultCellEditor(new   JCheckBox())); 
        //设置渲染器 
        column.setCellRenderer(new   CheckBoxRenderer()); 
        
        tsp = new JScrollPane(table);
        this.add(tsp,BorderLayout.CENTER);    
    }
    //CheckBoxRenderer   是一个自己编写的实现TableCellRenderer接口的类 
    class   CheckBoxRenderer   implements   TableCellRenderer{ 
        public   JCheckBox   chk; 
        public   CheckBoxRenderer(){ 
        this.chk   =   new   JCheckBox(); 
        } 
         //其中主要要实现这个函数 
        public   Component   getTableCellRendererComponent(JTable   arg0,   Object   value,   boolean   isSelected,   boolean   arg3,   int   arg4,   int   arg5)   { 
        this.chk.setSelected(Boolean.TRUE   ==   value); 
        this.chk.setEnabled(isSelected); 
        this.chk.setHorizontalAlignment(JCheckBox.CENTER); 
        return   this.chk; 
        } 
    }
    
    class CheckBoxListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            JCheckBox cb = (JCheckBox)e.getSource();
            if(cb.isSelected()){
                System.out.println("选择到了");
            }
        }
    }
    
    public static void main(String[] args) {
        new TestTableChange();
    }

}

⌨️ 快捷键说明

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