import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;public class TableTestM extends JFrame {
JTable jTable1;
JScrollPane jScrollPane1; public TableTestM() {
jTable1 = new JTable(new MyTableModel(new ContSQL()));
jScrollPane1 = new JScrollPane(jTable1);
this.add(jScrollPane1);
this.pack();
this.setVisible(true);
} public static void main(String[] args) {
new TableTestM();
}}import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;public class MyTableModel implements TableModel {
private ContSQL contSql = null;
private static ResultSet rs = null;
private static Statement stmt = null;
private static Connection conn = null;
private int rowNum = 0;
private int colNum = 0; public MyTableModel(ContSQL contSql) {
this.contSql = contSql;
try {
stmt = contSql.getStmt();
rs = stmt.executeQuery("select * from log_tab");
} catch (SQLException e) {
e.printStackTrace();
}
} public void addTableModelListener(TableModelListener arg0) {
// TODO Auto-generated method stub
} public Class<?> getColumnClass(int arg0) {
return null;
} public int getColumnCount() {
ResultSetMetaData rsmd;
try {
rsmd = rs.getMetaData();
colNum = rsmd.getColumnCount()-1;
} catch (SQLException e) {
e.printStackTrace();
}
return colNum; } public String getColumnName(int i) {
ResultSetMetaData rsmd;
try {
rsmd = rs.getMetaData();
return rsmd.getColumnName(i + 1);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
} public int getRowCount() { try {
rs.last();
rowNum=rs.getRow()-1;
rs.beforeFirst();
return rowNum;
} catch (SQLException e) {
e.printStackTrace();
}
return -1;
} public Object getValueAt(int row, int col) {
try {
if(row==0&&col==0){
rs.next();
}
if(row<rowNum&&col+1==colNum){
rs.next();
}
return rs.getString(col+1);
} catch (Exception e) {
e.printStackTrace();
} return null;
} public boolean isCellEditable(int arg0, int arg1) {
return false;
} public void removeTableModelListener(TableModelListener arg0) {
// TODO Auto-generated method stub } public void setValueAt(Object arg0, int arg1, int arg2) {
// TODO Auto-generated method stub }
// public static void main(String[] args){
// MyTableModel ta = new MyTableModel(new ContSQL());
// System.out.println(ta.getRowCount()+"=====");
// System.out.println(ta.getColumnCount()+"=====");
//
// for(int i=0;i<=ta.rowNum;i++){
// for(int j=0;j<=ta.colNum;j++){
// System.out.println(ta.getValueAt(i, j)+"wocao");
// }
// }
//
// }
}import java.sql.*;public class ContSQL {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null; public ContSQL() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager
.getConnection("jdbc:mysql://localhost/fmm?user=root&password=521");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// finally {
// if (conn != null) {
// try {
// conn.close();
// } catch (SQLException e) {
// }
// }
// if (conn != null) {
// try {
// conn.close();
// } catch (SQLException e) {
// }
// }
// if (conn != null) {
// try {
// conn.close();
// } catch (SQLException e) {
// }
// }
//
// } }
/*public boolean isValidate(String username, String passwd) {
String sql = "select * from log_tab where username='" + username
+ "' and passwd='" + passwd + "'"; try {
rs = stmt.executeQuery(sql);
if (rs.next()) {
return true;
}
} catch (SQLException e) {
return false;
}
return false;
}*/
public Statement getStmt() throws SQLException {
return conn.createStatement();
}}
create database fmm;
use fmm;
create table log_tab(
id int primary key auto_increment,
userName varchar(20) not null,
passwd varchar(9) not null
);insert into log_tab(userName,passwd) values('zhangsan','wowowo');
insert into log_tab(userName,passwd) values('lisi','wowowo');
insert into log_tab(userName,passwd) values('wangwu','wowowo');
commit;运行界面TableTestM时
总是报Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException异常
各位大虾帮忙解决下吧 谢谢了
import javax.swing.JScrollPane;
import javax.swing.JTable;public class TableTestM extends JFrame {
JTable jTable1;
JScrollPane jScrollPane1; public TableTestM() {
jTable1 = new JTable(new MyTableModel(new ContSQL()));
jScrollPane1 = new JScrollPane(jTable1);
this.add(jScrollPane1);
this.pack();
this.setVisible(true);
} public static void main(String[] args) {
new TableTestM();
}}import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;public class MyTableModel implements TableModel {
private ContSQL contSql = null;
private static ResultSet rs = null;
private static Statement stmt = null;
private static Connection conn = null;
private int rowNum = 0;
private int colNum = 0; public MyTableModel(ContSQL contSql) {
this.contSql = contSql;
try {
stmt = contSql.getStmt();
rs = stmt.executeQuery("select * from log_tab");
} catch (SQLException e) {
e.printStackTrace();
}
} public void addTableModelListener(TableModelListener arg0) {
// TODO Auto-generated method stub
} public Class<?> getColumnClass(int arg0) {
return null;
} public int getColumnCount() {
ResultSetMetaData rsmd;
try {
rsmd = rs.getMetaData();
colNum = rsmd.getColumnCount()-1;
} catch (SQLException e) {
e.printStackTrace();
}
return colNum; } public String getColumnName(int i) {
ResultSetMetaData rsmd;
try {
rsmd = rs.getMetaData();
return rsmd.getColumnName(i + 1);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
} public int getRowCount() { try {
rs.last();
rowNum=rs.getRow()-1;
rs.beforeFirst();
return rowNum;
} catch (SQLException e) {
e.printStackTrace();
}
return -1;
} public Object getValueAt(int row, int col) {
try {
if(row==0&&col==0){
rs.next();
}
if(row<rowNum&&col+1==colNum){
rs.next();
}
return rs.getString(col+1);
} catch (Exception e) {
e.printStackTrace();
} return null;
} public boolean isCellEditable(int arg0, int arg1) {
return false;
} public void removeTableModelListener(TableModelListener arg0) {
// TODO Auto-generated method stub } public void setValueAt(Object arg0, int arg1, int arg2) {
// TODO Auto-generated method stub }
// public static void main(String[] args){
// MyTableModel ta = new MyTableModel(new ContSQL());
// System.out.println(ta.getRowCount()+"=====");
// System.out.println(ta.getColumnCount()+"=====");
//
// for(int i=0;i<=ta.rowNum;i++){
// for(int j=0;j<=ta.colNum;j++){
// System.out.println(ta.getValueAt(i, j)+"wocao");
// }
// }
//
// }
}import java.sql.*;public class ContSQL {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null; public ContSQL() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager
.getConnection("jdbc:mysql://localhost/fmm?user=root&password=521");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// finally {
// if (conn != null) {
// try {
// conn.close();
// } catch (SQLException e) {
// }
// }
// if (conn != null) {
// try {
// conn.close();
// } catch (SQLException e) {
// }
// }
// if (conn != null) {
// try {
// conn.close();
// } catch (SQLException e) {
// }
// }
//
// } }
/*public boolean isValidate(String username, String passwd) {
String sql = "select * from log_tab where username='" + username
+ "' and passwd='" + passwd + "'"; try {
rs = stmt.executeQuery(sql);
if (rs.next()) {
return true;
}
} catch (SQLException e) {
return false;
}
return false;
}*/
public Statement getStmt() throws SQLException {
return conn.createStatement();
}}
create database fmm;
use fmm;
create table log_tab(
id int primary key auto_increment,
userName varchar(20) not null,
passwd varchar(9) not null
);insert into log_tab(userName,passwd) values('zhangsan','wowowo');
insert into log_tab(userName,passwd) values('lisi','wowowo');
insert into log_tab(userName,passwd) values('wangwu','wowowo');
commit;运行界面TableTestM时
总是报Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException异常
各位大虾帮忙解决下吧 谢谢了
解决方案 »
- 求大侠指导此问题!
- java swing数据库连接
- osworkflow设计器
- 【Log4j---难题!!!求解!】log4j 的配置文件中,在一条信息输出中可以定义多个 %m参数吗?如何实现?
- 怎样用java修改文件的读,写,执行权限
- 邮件乱码问题,急!!!
- 一道java解析字符串,然后以树形结构存入数据库的一道题 --- 各路牛人请搭救一下我吧。
- 如何用Jconnect连接局域网中的另外一台电脑的Sybase 数据库啊。在线等!
- 如何把一个int型的数转化成String?
- JB老是自做聰明的把中文輸入法調出來,﹐怎麼解決這個問題?
- div+css
- ProcessBuilder 怎样调用 keytool命令?
at javax.swing.JTable.prepareRenderer(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JViewport.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintWithOffscreenBuffer(Unknown Source)
at javax.swing.JComponent.paintDoubleBuffered(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at sun.awt.RepaintArea.paintComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(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)
JAVAX.SWING.*;
就可以了