📄 testtablechange.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 + -