导航:首页 > 编程语言 > javatable数据库

javatable数据库

发布时间:2025-02-16 09:36:25

A. java 怎么把数据库里的数据显示在JTable表格里

这个要从头说起就复杂了。我简单说一下吧。
首先,要把数据从库中取出来,假设你已经会了。
其次,创建一个表格模型,
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("proct");
int i=results.getInt("num");
//把以上数据添加到表格模型的一行中

model.addRow(new Object[]{dt,name,pname,i});
}
最后,用模型生成表格
JTable table=new JTable(model);
当然,还有一些其它的操作,比如把表格显示出来,表格的字体、行高等设置等等,不再一一赘述。

B. 怎样用Java实现将在数据库中查询到的数据显示在表格中

JTable的有一个方法是getTableModel().返回提供此 JTable 所显示数据的 TableModel.
TableModel是一个接口,实际上返回的是DefaultTableModel类,它实现了TableModel接口。这个类中有一个方法是void addRow(Object[] rowData)。它就是将一行插入到JTable中。
不过JTable的setValueAt方法应该就可以实现。
楼主可以定义个一个线程类来完成。
比如你需要插入100行数据,可以在线程的run方法中写一个循环,在循环中写两行代码,一行是setValueAt,一行是刷新JTable,然后再让线程睡眠,这样一行一行的显示的效果就可以出来了!
或者楼主可以用进度条来打发等待的时间,就像打开netbeans的那个进度条一样,这个可以用JProgressBar类。楼主可以去查看一下源代码。如果楼主还是没有头绪,我干脆就写个例子得了!
关于组件的添加或者类似设置窗口的大小,布局管理器等我就不做解释了!
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.table.*;

public class Test extends JFrame implements ActionListener
{

private JButton button1;
private JButton button2;
private JButton button3;
private DefaultTableModel model;
private JTable table;
private JProgressBar bar;
private JScrollPane scrollpane;
private JPanel panel;

public Test()
{
button1=new JButton("演示1");
button2=new JButton("演示2");
button3=new JButton("清空");
panel=new JPanel();
bar=new JProgressBar(0,100);
String[] colnames={"数据一","数据二"};
model=new DefaultTableModel(colnames,100);
table=new JTable(model);
scrollpane=new JScrollPane(table);
panel.setLayout(new FlowLayout());
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(bar);
this.setLayout(new GridLayout(2,1));
this.setSize(500,600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(scrollpane);
this.add(panel);
}

public void actionPerformed(ActionEvent e)
{
String command=e.getActionCommand();
if(command.equals("演示1"))
{
ShowModel show=new ShowModel(true);
Thread thread=new Thread(show);
thread.start();
}
else if(command.equals("演示2"))
{
ShowModel show=new ShowModel(false);
Thread thread=new Thread(show);
thread.start();
}
else
{
String[] colnames={"数据一","数据二"};
model=new DefaultTableModel(colnames,100);
table.setModel(model);
}
}

private class ShowModel implements Runnable
{

private boolean type;//当type为true时,则说明是“演示1”的线程,false则相反

public ShowModel(boolean type)
{
this.type=type;
}

public void run()
{

if(type)//这个就是让线程睡眠,并且设置JTable的值
{
try{

for(int i=0;i<100;i++)
{
Test.this.table.setValueAt(String.valueOf(i),i,0);
Test.this.table.setValueAt(String.valueOf(i),i,1);
Thread.sleep(100);
}

}catch(Exception e)
{
e.printStackTrace();
}
}
else//这个就是进度条的演示
{
try{
Test.this.table.setVisible(false);
for(int i=0;i<100;i++)
{
Test.this.table.setValueAt(String.valueOf(i),i,0);
Test.this.table.setValueAt(String.valueOf(i),i,1);
Test.this.bar.setValue(i+1);
Test.this.bar.setString(String.valueOf(i+1)+"%");
Thread.sleep(40);
if(i==99)
{
Test.this.table.setVisible(true);
JOptionPane.showMessageDialog(Test.this,"OK");
Test.this.bar.setValue(0);
}

}

}catch(Exception e)
{
e.printStackTrace();
}
}
}
}

public static void main(String[] args)
{
Test test=new Test();
test.setVisible(true);
}

}

C. java中数据库变了但我的JTtable表格不能够马上变怎么办啊

这个问题我也碰到过,你更新数据库后,调用方法立即把DefaultTableModel跟数据库数据再次吻合,然后再后面加上JTable名.repaint();方法就可以了,它会立即自动刷新表格同步。(如这样声明的:JTable myTable=new JTable(你的Table模型);然后更新数据库后,更改DefaultTableModel与数据库数据一样,再在它之后调用语句myTable.repaint();就可以了

D. java中从数据库中得到多行数据并向JTable中加入时,最后显示的只有一行

参考一下我的。你的while(rs.next())是不是放错地方了
public void queryCus(String sql,String[] paras){

SqlHelper sqlHelper = null;
columnNames = new Vector();

columnNames.add("客户编号");
columnNames.add("客户姓名");
columnNames.add("客户性别");
columnNames.add("身份证号码");
columnNames.add("客户联系电话");
columnNames.add("客户类型编号");
columnNames.add("备注");
rowData = new Vector();
try {
sqlHelper = new SqlHelper();
ResultSet rs = sqlHelper.queryExectue(sql, paras);
while(rs.next()){
Vector hang = new Vector();
hang.add(rs.getInt(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getString(4));
hang.add(rs.getString(5));
hang.add(rs.getInt(6));
hang.add(rs.getString(7));

//加入到rowData
rowData.add(hang);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
sqlHelper.close();
}
}

阅读全文

与javatable数据库相关的资料

热点内容
查看所有进程的命令 浏览:3
数码摄影圣经pdf 浏览:787
苹果耳机照片怎么加密 浏览:653
电脑保存命令 浏览:786
怎么安装苏宁推客app 浏览:389
田英章7000常用字pdf 浏览:358
python爬虫起点 浏览:403
三维图常见命令 浏览:677
美的压缩机保修几年 浏览:136
linuxnfs服务器配置 浏览:85
加载算法模版失败怎么回事 浏览:374
华为手机里面的视频如何加密 浏览:215
mba教材pdf 浏览:112
安卓台服英雄联盟手游怎么更新 浏览:238
天天基金app的指数榜在哪里 浏览:99
表格怎么加密编辑 浏览:859
安卓怎么改手机字体样式 浏览:415
盖世汽车招聘新闻编译 浏览:410
python识别网页视频时间 浏览:15
如何用dos命令打开文件 浏览:208