窗体上有一JTable,如何让数据库里的数据在表格里显示出来
2014-03-12 17:07
686 查看
找了点代码,学习中
import java.awt.*;
import javax.swing.*;
import javax.swing.table.TableColumn;
public class tableUI extends JPanel
{
public tableUI(String databaseName, String tableName, String[] colNames,
int[] colWidth, int totalWidth) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
} catch (ClassNotFoundException e) {
System.out.println(e);
}
tableHandler = new TableHandler(databaseName, tableName, colNames);
tableHandler.updateTable();
TableColumn column = null;
table = new JTable(tableHandler);
table
.setPreferredScrollableViewportSize(new Dimension(totalWidth,
210));
table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
for (int i = 0; i < colWidth.length; i++) {
column = table.getColumnModel().getColumn(i);
column.setPreferredWidth(colWidth[i] * 100);
}
JScrollPane s = new JScrollPane(table);
this.add(s, BorderLayout.CENTER);
this.setSize(this.getPreferredSize());
setVisible(true);
}
JTable table;
JScrollPane scrollPane;
public TableHandler tableHandler;
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.table.AbstractTableModel;
public class TableHandler extends AbstractTableModel {
public TableHandler(String databaseName, String tableName, String[] colNames) {
super();
this.tableName = tableName;
this.databaseName = databaseName;
colNum = colNames.length;
this.colNames = new String[colNum];
System.arraycopy(colNames, 0, this.colNames, 0, colNum);
}
public void updateTable() {
try {
Connection conn;
conn = DriverManager.getConnection("jdbc:mysql://localhost/"
+ databaseName + "?user=root&password=");
Statement myStatement = conn.createStatement();
ResultSet rt = myStatement.executeQuery("SELECT count(*) FROM "
+ tableName);
rt.next();
rowNum = rt.getInt(1);
list = new String[rowNum][colNum];
ResultSet rs = myStatement.executeQuery("SELECT * FROM "
+ tableName);
int row = 0;
while (rs.next()) {
for (int i = 0; i < colNum; i++) {
list[row][i] = rs.getString(colNames[i]);
}
row++;
}
conn.close();
fireTableDataChanged();
} catch (SQLException e) {
System.out.println(e);
}
}
public int getColumnCount() {
return colNum;
}
public int getRowCount() {
return rowNum;
}
public String getColumnName(int col) {
return colNames[col];
}
public Object getValueAt(int row, int column) {
return list[row][column];
}
String[][] list;
String[] colNames;
String tableName;
String databaseName;
int rowNum;
int colNum;
}
代码2:
import java.awt.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.*;
/**
* TableQueryFrame extends JInternalFrame to create a display which builds SQL
* CREATE statements
*/
class TableQueryFrame extends JInternalFrame
{
JTable table;
JScrollPane tableScroller;
DatabaseUtilities dbUtils;
String tableName = null;
String colNames[] = null;
String dataTypes[] = null;
String SQLQuery = null;
public TableQueryFrame(String tableName, DatabaseUtilities dbUtils)
{
setSize(450,300);
setClosable(true);
setMaximizable(true);
setIconifiable(true);
setResizable(true);
getContentPane().setLayout(new BorderLayout());
this.tableName=tableName;
this.dbUtils=dbUtils;
colNames = dbUtils.getColumnNames(tableName);
dataTypes = dbUtils.getDataTypes(tableName);
SQLQuery = "SELECT TOP 5 * FROM "+tableName;
Vector dataSet = dbUtils.executeQuery(SQLQuery);
table = createTable(colNames,dataSet);
tableScroller = new JScrollPane(table);
getContentPane().add(tableScroller,BorderLayout.CENTER);
setVisible(true);
}
JTable createTable(String[] colNames,Vector dataSet)
{
int nRows = dataSet.size();
String[][] rowData = new String[nRows][colNames.length];
for(int i=0;i<nRows;i++)
{
Vector row = (Vector)dataSet.elementAt(i);
for(int j=0;j<row.size();j++)
rowData[i][j]=((Object)row.elementAt(j)).toString();
}
JTable table = new JTable(rowData,colNames);
return table;
}
}
import java.awt.*;
import javax.swing.*;
import javax.swing.table.TableColumn;
public class tableUI extends JPanel
{
public tableUI(String databaseName, String tableName, String[] colNames,
int[] colWidth, int totalWidth) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
} catch (ClassNotFoundException e) {
System.out.println(e);
}
tableHandler = new TableHandler(databaseName, tableName, colNames);
tableHandler.updateTable();
TableColumn column = null;
table = new JTable(tableHandler);
table
.setPreferredScrollableViewportSize(new Dimension(totalWidth,
210));
table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
for (int i = 0; i < colWidth.length; i++) {
column = table.getColumnModel().getColumn(i);
column.setPreferredWidth(colWidth[i] * 100);
}
JScrollPane s = new JScrollPane(table);
this.add(s, BorderLayout.CENTER);
this.setSize(this.getPreferredSize());
setVisible(true);
}
JTable table;
JScrollPane scrollPane;
public TableHandler tableHandler;
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.table.AbstractTableModel;
public class TableHandler extends AbstractTableModel {
public TableHandler(String databaseName, String tableName, String[] colNames) {
super();
this.tableName = tableName;
this.databaseName = databaseName;
colNum = colNames.length;
this.colNames = new String[colNum];
System.arraycopy(colNames, 0, this.colNames, 0, colNum);
}
public void updateTable() {
try {
Connection conn;
conn = DriverManager.getConnection("jdbc:mysql://localhost/"
+ databaseName + "?user=root&password=");
Statement myStatement = conn.createStatement();
ResultSet rt = myStatement.executeQuery("SELECT count(*) FROM "
+ tableName);
rt.next();
rowNum = rt.getInt(1);
list = new String[rowNum][colNum];
ResultSet rs = myStatement.executeQuery("SELECT * FROM "
+ tableName);
int row = 0;
while (rs.next()) {
for (int i = 0; i < colNum; i++) {
list[row][i] = rs.getString(colNames[i]);
}
row++;
}
conn.close();
fireTableDataChanged();
} catch (SQLException e) {
System.out.println(e);
}
}
public int getColumnCount() {
return colNum;
}
public int getRowCount() {
return rowNum;
}
public String getColumnName(int col) {
return colNames[col];
}
public Object getValueAt(int row, int column) {
return list[row][column];
}
String[][] list;
String[] colNames;
String tableName;
String databaseName;
int rowNum;
int colNum;
}
代码2:
import java.awt.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.*;
/**
* TableQueryFrame extends JInternalFrame to create a display which builds SQL
* CREATE statements
*/
class TableQueryFrame extends JInternalFrame
{
JTable table;
JScrollPane tableScroller;
DatabaseUtilities dbUtils;
String tableName = null;
String colNames[] = null;
String dataTypes[] = null;
String SQLQuery = null;
public TableQueryFrame(String tableName, DatabaseUtilities dbUtils)
{
setSize(450,300);
setClosable(true);
setMaximizable(true);
setIconifiable(true);
setResizable(true);
getContentPane().setLayout(new BorderLayout());
this.tableName=tableName;
this.dbUtils=dbUtils;
colNames = dbUtils.getColumnNames(tableName);
dataTypes = dbUtils.getDataTypes(tableName);
SQLQuery = "SELECT TOP 5 * FROM "+tableName;
Vector dataSet = dbUtils.executeQuery(SQLQuery);
table = createTable(colNames,dataSet);
tableScroller = new JScrollPane(table);
getContentPane().add(tableScroller,BorderLayout.CENTER);
setVisible(true);
}
JTable createTable(String[] colNames,Vector dataSet)
{
int nRows = dataSet.size();
String[][] rowData = new String[nRows][colNames.length];
for(int i=0;i<nRows;i++)
{
Vector row = (Vector)dataSet.elementAt(i);
for(int j=0;j<row.size();j++)
rowData[i][j]=((Object)row.elementAt(j)).toString();
}
JTable table = new JTable(rowData,colNames);
return table;
}
}
相关文章推荐
- java的JTable组件显示mysql数据库表中的数据以及将JTable表格中的数据存储到数据库中
- 请问如何在Web页面中点击一个button之后,用jsp从数据库中读取数据显示到表格里
- java 中如何在JTABLE中显示连接数据库表中的数据
- [VB.NET]100分求:如何从数据库取出数据并生成表格显示数据?
- 如何把从数据库读出来的数据以excel格式显示到网页?
- 如何在jsp上查询并显示数据库mysql的数据表格
- php新闻发布系统发布成功从数据库查询所有数据用表格显示出来03
- 如何从数据库中获取image类型的数据,并把它显示出来
- 如何在JPG或BMP图片上显示输入的订单数据内容,并在报表打印时显示出来,后台数据库是SQL SERVER 2000 ,先谢了.高分!
- C#后台制作之数据库(二、如何清除显示以及将数据库数据导出到excel表格文件中)
- 如何将从数据库中的数据(表的形式显示出来的)导入到Excel表格中?
- Winform下如何上传图片并显示出来。同时保存到数据库
- 批量从数据库是提取数据,并显示出来。
- 如何抽取前30的数据汇总项目,剩余的加和列为其他(99),在RDLC报表上作为饼图显示出来
- 如何判断SQL SERVER中的某个数据库中的某个表是否有索引,并将索引名称显示出来?
- 如何把Windows 窗体 DataGridView 的某一列的数据显示为“*”。
- 根据后台数据,更改EasyUI的DataGrid的显示。比如后台数据库的数据是true和false.显示出来的是喝否
- 关于Jtable点击动态显示Excel表格数据
- Exl表格的数据如何通过PL/SQL加入到数据库中
- 【WPF学习笔记】之如何把数据库里的值读取出来然后显示在页面上:动画系列之(六)(评论处有学习资料及源码)