package com.zjkjl.bean;
import java.sql.*;
import com.zjkjl.DB.*;
import java.util.*;public class UserDao {
public Vector<User> getAllUser() {
Vector<User> v = new Vector<User>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
conn = ConnDB.getConnection();
String sql = "select * from TestUser";
pstmt = ConnDB.createPreparedStatement(conn, sql);
rs = ConnDB.getResultSet(pstmt);
try {
while(rs.next()) {
User u = new User();
u.setUserId(rs.getInt("UserId"));
u.setUserName(rs.getString("UserName"));
u.setUserAge(rs.getInt("UserAge"));
u.setUserSex(rs.getString("UserSex"));
v.add(u);
}
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
return v;
}
public Vector<String> getAllCol() {
Vector<String> v = new Vector<String>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
conn = ConnDB.getConnection();
String sql = "select * from TestUser";
pstmt = ConnDB.createPreparedStatement(conn, sql);
rs = ConnDB.getResultSet(pstmt);
ResultSetMetaData rsdm = null;
try {
rsdm = rs.getMetaData();
for(int i=1;i<=rsdm.getColumnCount();i++) {
v.add(rsdm.getColumnName(i));
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return v;
}
}package zjkjl.com;import java.awt.*;
import javax.swing.*;
import java.awt.Rectangle;
import javax.swing.table.JTableHeader;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import javax.swing.table.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;import com.zjkjl.bean.*;public class Frame1
extends JFrame {
JPanel contentPane;
UserDao dao = new UserDao();
//创建表头
/*String[] title={"学号","姓名","年龄","性别"};
String[][] data={{"1","张三","20","男"},{"2","李四","22","男"},{"3","王五","20","女"}};*/
//首先创建表模版
Vector<User> vdata = dao.getAllUser();
Vector<String> vHeader = dao.getAllCol();
JScrollPane jScrollPane1 = new JScrollPane();
//通过表模版创建JTable
JTable jTable1 = new JTable(vdata,vHeader){
public boolean isCellEditable(int row,
int column){
if(column==0)
return false;
else
return true;
}
};
JLabel jLabel1 = new JLabel();
JTextField txtNum = new JTextField();
JLabel jLabel2 = new JLabel();
JTextField txtName = new JTextField();
JLabel jLabel3 = new JLabel();
JTextField txtAge = new JTextField();
JLabel jLabel4 = new JLabel();
JTextField txtSex = new JTextField();
JButton jButton1 = new JButton();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 515));
setTitle("表格测试");
jScrollPane1.setBounds(new Rectangle(74, 51, 242, 135));
jLabel1.setText("学号:");
jLabel1.setBounds(new Rectangle(75, 224, 73, 30));
txtNum.setBounds(new Rectangle(155, 222, 160, 27));
jLabel2.setText("姓名:");
jLabel2.setBounds(new Rectangle(75, 272, 68, 30));
txtName.setBounds(new Rectangle(154, 271, 161, 30));
jLabel3.setText("年龄:");
jLabel3.setBounds(new Rectangle(73, 321, 57, 28));
txtAge.setBounds(new Rectangle(153, 317, 159, 28));
jLabel4.setText("性别:");
jLabel4.setBounds(new Rectangle(74, 369, 58, 26));
txtSex.setBounds(new Rectangle(151, 364, 162, 32));
jTable1.addMouseListener(new Frame1_jTable1_mouseAdapter(this));
jButton1.setBounds(new Rectangle(64, 430, 112, 39));
jButton1.setText("删除选中的行");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
contentPane.add(jScrollPane1);
contentPane.add(txtNum);
contentPane.add(jLabel1);
contentPane.add(jLabel2);
contentPane.add(txtName);
contentPane.add(jLabel3);
contentPane.add(txtAge);
contentPane.add(txtSex);
contentPane.add(jLabel4);
contentPane.add(jButton1);
jScrollPane1.getViewport().add(jTable1);
} public void jTable1_mouseClicked(MouseEvent e) {
int row=jTable1.getSelectedRow();
TableModel model=jTable1.getModel();
if(row!=-1)
{
//获取选中的行,各单元格的值
String id=model.getValueAt(row,0).toString();
String name=model.getValueAt(row,1).toString();
String age=model.getValueAt(row,2).toString();
String sex=model.getValueAt(row,3).toString();
//文本框赋值
txtNum.setText(id);
txtName.setText(name);
txtAge.setText(age);
txtSex.setText(sex);
}
} public void jButton1_actionPerformed(ActionEvent e) {
int row=jTable1.getSelectedRow();
if(row!=-1)
{
((DefaultTableModel)(jTable1.getModel())).removeRow(row);
txtNum.setText("");
txtName.setText("");
txtAge.setText("");
txtSex.setText(""); }
else
JOptionPane.showMessageDialog(this,"请选择要删除的行");
}
}class Frame1_jButton1_actionAdapter
implements ActionListener {
private Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
} public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}class Frame1_jTable1_mouseAdapter
extends MouseAdapter {
private Frame1 adaptee;
Frame1_jTable1_mouseAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
} public void mouseClicked(MouseEvent e) {
adaptee.jTable1_mouseClicked(e);
}
}Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.zjkjl.bean.User
at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at javax.swing.table.DefaultTableModel.<init>(Unknown Source)
at zjkjl.com.Frame1$1.<init>(Frame1.java:28)
at zjkjl.com.Frame1.<init>(Frame1.java:28)
at zjkjl.com.Application1.<init>(Application1.java:15)
at zjkjl.com.Application1$1.run(Application1.java:54)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)老师要我重写某个方法 我还是没找到..为什么会出现异常? 求解决办法
import java.sql.*;
import com.zjkjl.DB.*;
import java.util.*;public class UserDao {
public Vector<User> getAllUser() {
Vector<User> v = new Vector<User>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
conn = ConnDB.getConnection();
String sql = "select * from TestUser";
pstmt = ConnDB.createPreparedStatement(conn, sql);
rs = ConnDB.getResultSet(pstmt);
try {
while(rs.next()) {
User u = new User();
u.setUserId(rs.getInt("UserId"));
u.setUserName(rs.getString("UserName"));
u.setUserAge(rs.getInt("UserAge"));
u.setUserSex(rs.getString("UserSex"));
v.add(u);
}
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
return v;
}
public Vector<String> getAllCol() {
Vector<String> v = new Vector<String>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
conn = ConnDB.getConnection();
String sql = "select * from TestUser";
pstmt = ConnDB.createPreparedStatement(conn, sql);
rs = ConnDB.getResultSet(pstmt);
ResultSetMetaData rsdm = null;
try {
rsdm = rs.getMetaData();
for(int i=1;i<=rsdm.getColumnCount();i++) {
v.add(rsdm.getColumnName(i));
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return v;
}
}package zjkjl.com;import java.awt.*;
import javax.swing.*;
import java.awt.Rectangle;
import javax.swing.table.JTableHeader;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import javax.swing.table.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;import com.zjkjl.bean.*;public class Frame1
extends JFrame {
JPanel contentPane;
UserDao dao = new UserDao();
//创建表头
/*String[] title={"学号","姓名","年龄","性别"};
String[][] data={{"1","张三","20","男"},{"2","李四","22","男"},{"3","王五","20","女"}};*/
//首先创建表模版
Vector<User> vdata = dao.getAllUser();
Vector<String> vHeader = dao.getAllCol();
JScrollPane jScrollPane1 = new JScrollPane();
//通过表模版创建JTable
JTable jTable1 = new JTable(vdata,vHeader){
public boolean isCellEditable(int row,
int column){
if(column==0)
return false;
else
return true;
}
};
JLabel jLabel1 = new JLabel();
JTextField txtNum = new JTextField();
JLabel jLabel2 = new JLabel();
JTextField txtName = new JTextField();
JLabel jLabel3 = new JLabel();
JTextField txtAge = new JTextField();
JLabel jLabel4 = new JLabel();
JTextField txtSex = new JTextField();
JButton jButton1 = new JButton();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 515));
setTitle("表格测试");
jScrollPane1.setBounds(new Rectangle(74, 51, 242, 135));
jLabel1.setText("学号:");
jLabel1.setBounds(new Rectangle(75, 224, 73, 30));
txtNum.setBounds(new Rectangle(155, 222, 160, 27));
jLabel2.setText("姓名:");
jLabel2.setBounds(new Rectangle(75, 272, 68, 30));
txtName.setBounds(new Rectangle(154, 271, 161, 30));
jLabel3.setText("年龄:");
jLabel3.setBounds(new Rectangle(73, 321, 57, 28));
txtAge.setBounds(new Rectangle(153, 317, 159, 28));
jLabel4.setText("性别:");
jLabel4.setBounds(new Rectangle(74, 369, 58, 26));
txtSex.setBounds(new Rectangle(151, 364, 162, 32));
jTable1.addMouseListener(new Frame1_jTable1_mouseAdapter(this));
jButton1.setBounds(new Rectangle(64, 430, 112, 39));
jButton1.setText("删除选中的行");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
contentPane.add(jScrollPane1);
contentPane.add(txtNum);
contentPane.add(jLabel1);
contentPane.add(jLabel2);
contentPane.add(txtName);
contentPane.add(jLabel3);
contentPane.add(txtAge);
contentPane.add(txtSex);
contentPane.add(jLabel4);
contentPane.add(jButton1);
jScrollPane1.getViewport().add(jTable1);
} public void jTable1_mouseClicked(MouseEvent e) {
int row=jTable1.getSelectedRow();
TableModel model=jTable1.getModel();
if(row!=-1)
{
//获取选中的行,各单元格的值
String id=model.getValueAt(row,0).toString();
String name=model.getValueAt(row,1).toString();
String age=model.getValueAt(row,2).toString();
String sex=model.getValueAt(row,3).toString();
//文本框赋值
txtNum.setText(id);
txtName.setText(name);
txtAge.setText(age);
txtSex.setText(sex);
}
} public void jButton1_actionPerformed(ActionEvent e) {
int row=jTable1.getSelectedRow();
if(row!=-1)
{
((DefaultTableModel)(jTable1.getModel())).removeRow(row);
txtNum.setText("");
txtName.setText("");
txtAge.setText("");
txtSex.setText(""); }
else
JOptionPane.showMessageDialog(this,"请选择要删除的行");
}
}class Frame1_jButton1_actionAdapter
implements ActionListener {
private Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
} public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}class Frame1_jTable1_mouseAdapter
extends MouseAdapter {
private Frame1 adaptee;
Frame1_jTable1_mouseAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
} public void mouseClicked(MouseEvent e) {
adaptee.jTable1_mouseClicked(e);
}
}Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.zjkjl.bean.User
at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at javax.swing.table.DefaultTableModel.<init>(Unknown Source)
at zjkjl.com.Frame1$1.<init>(Frame1.java:28)
at zjkjl.com.Frame1.<init>(Frame1.java:28)
at zjkjl.com.Application1.<init>(Application1.java:15)
at zjkjl.com.Application1$1.run(Application1.java:54)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)老师要我重写某个方法 我还是没找到..为什么会出现异常? 求解决办法
解决方案 »
- 求flush()作用和通过一个文本文档内容追加另一文本文档内容的办法
- [请教达人]用AWT写的源码,在此基础上用能SWT继续开发吗
- 急,请大家帮下忙!
- 帮我看看什么错!编译通过,运行显示main():java.lang.NullPointException
- java提取excel数据以word形式打印??(有哪位高手进来解答一下)
- 初学java谢谢指教
- SWT,如何在日文系统下实现中文的正常显示
- JBuilder下关于关于窗体调用,初学,望指教!
- 有意思,看看为什么会输出这个结果???????????????
- JAVA 开发工具Jcreator使用技巧总结
- 一个jdbc封装问题
- 数据库封装类千奇百怪,求一个用的较多的封装方法,谢谢
求解决办法