java JTable中如何添加一行数据?

java JTable中如何添加一行数据?,第1张

可以使用Swing的DefaultTableModel类。\x0d\x0aDefaultTableModel model = new DefaultTableModel()// 新建一个默认数据模型\x0d\x0aJTablt table = new JTable(model)// 用数据模型创建JTable,JTable会自动监听到数据模型中的数据改变并显示出来\x0d\x0aJScrollPane jsp = new JScrollPane(table)// 用列表创建可滚动的Panel,把这个Panel添加到窗口中\x0d\x0aVector row = new Vector()// 数据行向量,使用它的add()添加元素,比如整数、String、Object等,有几行就new几个行向量\x0d\x0aVector data = new Vector()// 数据行向量集,因为列表不止一行,往里面添加数据行向量,添加方法add(row)\x0d\x0aVector names = new Vector()// 列名向量,使用它的add()方法添加列名\x0d\x0amodel.setDataVector(Vector data, Vector names)// 设置模型中的元素,它会自动显示在列表中

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

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

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

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)

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

一个类似的例子,从数据库里取数据放table里,请参考。

package Libary

import java.awt.Cursor

import java.sql.ResultSet

import java.sql.SQLException

import java.sql.Statement

import java.util.Vector

import javax.swing.*

import javax.swing.table.DefaultTableModel

public class BorrowBookLog extends JFrame{

   /**

 * 

 */

private static final long serialVersionUID = 5922888622610809963L

String BBookName, BBookId

JButton Borrow, Cancel

Statement SearchStmt

   @SuppressWarnings({ "rawtypes", "unchecked" })

BorrowBookLog(){

ConDB CB3 = new ConDB()

CB3.connectionDB()

try {

SearchStmt = CB3.dbConn.createStatement()

} catch (SQLException e1) {

// TODO 自动生成的 catch 块

e1.printStackTrace()

}

DefaultTableModel tableModel = new DefaultTableModel()

String[] tableHeads= {"图书编号","图书名称","借阅人", "借阅时间"}

Vector cell

Vector row = new Vector()

Vector tableHeadName = new Vector()

for(int i = 0i<tableHeads.lengthi++){

tableHeadName.add(tableHeads[i])

}

try {

ResultSet s =SearchStmt.executeQuery("select * from BorrowedBooks where StudentId ="+ "'"+ StudentMainFrame.Name+"'")

while(s.next()){

cell = new Vector()

cell.add(s.getString("BookId"))

cell.add(s.getString("BookName"))

cell.add(s.getString("StudentId"))

cell.add(s.getString("BorrowedDate"))

row.add(cell)

BBookId = s.getString("BookId")

BBookName = s.getString("BookName")

}

} catch (SQLException e1) {

// TODO 自动生成的 catch 块

e1.printStackTrace()

}

setTitle("查询结果")

tableModel.setDataVector(row, tableHeadName)

JTable table = new JTable(tableModel)

table.setRowHeight(20)

table.setCursor(new Cursor(12))

getContentPane().setLayout(null)

JScrollPane scrollPane = new JScrollPane(table)

scrollPane.setBounds(10, 10, 420, 200)

scrollPane.setCursor(new Cursor(12))

this.getContentPane().add(scrollPane)

setLocation(450,220)

setSize(450,300)

setVisible(true)

   }

public static void mian(String args[]){

 

   }

}


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

原文地址:https://54852.com/bake/11723227.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存