怎么样将数据库的表在Java中界面中显示出来

怎么样将数据库的表在Java中界面中显示出来,第1张

import javax.swing.*

import javax.swing.table.JTableHeader

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.sql.*

public class Test extends JFrame{

// 定义组件

private JScrollPane scpDemo

private JTableHeader jth

private JTable tabDemo

private JButton btnShow

// 构造方法

public Test(){

// 窗体的相关属性的定义

super("JTable数据绑定示例")

this.setSize(330,400)

this.setLayout(null)

this.setLocation(100,50)

// 创建组件

this.scpDemo = new JScrollPane()

this.scpDemo.setBounds(10,50,300,270)

this.btnShow = new JButton("显示数据")

this.btnShow.setBounds(10,10,300,30)

// 给按钮注册监听

this.btnShow.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

btnShow_ActionPerformed(ae)

}

})

// 将组件加入到窗体中

add(this.scpDemo)

add(this.btnShow)

// 显示窗体

this.setVisible(true)

}

// 点击按钮时的事件处理

public void btnShow_ActionPerformed(ActionEvent ae){

// 以下是连接数据源和显示数据的具体处理方法,请注意下

try{

// 获得连接

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

Connection conn = DriverManager.getConnection("jdbc:odbc:localServer","sa","")

// 建立查询条件

String sql = "select * from localServer"

PreparedStatement pstm = conn.prepareStatement(sql)

// 执行查询

ResultSet rs = pstm.executeQuery()

// 计算有多少条记录

int count = 0

while(rs.next()){

count++

}

rs = pstm.executeQuery()

// 将查询获得的记录数据,转换成适合生成JTable的数据形式

Object[][] info = new Object[count][4]

count = 0

while(rs.next()){

info[count][0] = Integer.valueOf( rs.getInt("id"))

info[count][1] = rs.getString("name")

info[count][2] = Integer.valueOf( rs.getInt("age") )

info[count][3] = rs.getString("sex")

count++

}

// 定义表头

String[] title = {"学号","姓名","年龄","性别"}

// 创建JTable

this.tabDemo = new JTable(info,title)

// 显示表头

this.jth = this.tabDemo.getTableHeader()

// 将JTable加入到带滚动条的面板中

this.scpDemo.getViewport().add(tabDemo)

}catch(ClassNotFoundException cnfe){

JOptionPane.showMessageDialog(null,"数据源错误","错误",JOptionPane.ERROR_MESSAGE)

}catch(SQLException sqle){

JOptionPane.showMessageDialog(null,"数据 *** 作错误","错误",JOptionPane.ERROR_MESSAGE)

}

}

public static void main(String[] args){

new Test()

}

}

你数据库会连接吗?假设你会,参照下面的代码:

private static Connection getConnection()

{

.......//这里是连接数据库的代码,返回一个Connection对象。要按实际的数据库写。

}

…………

Connection conn=getConnection()

DefaultTableModel model=new DefaultTableModel()

JTable jTable=new JTable()

jTable.setModel(model)

try

{

Statement st=conn.createStatement()

String sql="select * from user"//假设要读的数据库表为user

ResultSet results=st.executeQuery(sql)

ResultSetMetaData metaData=results.getMetaData()

String[] headerData=new String[metaData.getColumnCount()]

for(int i=1i<metaData.getColumnCount()i++)

{

headerData[i-1]=metaData.getColumnName(i)

model.addColumn(headerData[i-1])

}

while(results.next())//假设表结构是这样的:id int,name varchar(12)

{

int id=results.getInt("id")

String name=results.getString("name")

model.addRow(new Object[]{id,name})

}

}

catch(Exception e){}

代码大致如上。

这个要从头说起就复杂了。我简单说一下吧。

首先,要把数据从库中取出来,假设你已经会了。

其次,创建一个表格模型,

DefaultTableModel model=new DefaultTableModel()

//创建表头

model.setColumnIdentifiers(new Object[]{"日期/时间"," *** 作工","产品型号","数量"})

再次,添加数据

while(results.next())

{

String dt=results.getString("dt")

String name=results.getString("name")

String pname=results.getString("product")

int i=results.getInt("num")

//把以上数据添加到表格模型的一行中

model.addRow(new Object[]{dt,name,pname,i})

}

最后,用模型生成表格

JTable table=new JTable(model)

当然,还有一些其它的 *** 作,比如把表格显示出来,表格的字体、行高等设置等等,不再一一赘述。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6781275.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存