導航:首頁 > 編程語言 > 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資料庫相關的資料

熱點內容
嵌入式能編譯文件的許可權 瀏覽:12
轎車空調壓縮機突然怎麼不工作了 瀏覽:432
dd命令怎麼解壓 瀏覽:397
舊版安卓怎麼開鎖 瀏覽:247
開發程序員推薦 瀏覽:263
企信如何禁止訪問其他app 瀏覽:71
程序員辦公本推薦2019 瀏覽:197
手機qq下載app在哪裡 瀏覽:536
阿里程序員喊話 瀏覽:982
軟體伺服器地址不對怎麼辦 瀏覽:156
gcco的編譯格式 瀏覽:192
手持噴碼機加密怎麼買墨盒 瀏覽:744
cadcc命令 瀏覽:902
安卓手機攝像頭為什麼不用藍寶石 瀏覽:958
編譯器保留數字 瀏覽:8
linux解壓war命令 瀏覽:48
紅與黑中央編譯 瀏覽:570
我的世界簡單命令方塊教學 瀏覽:196
什麼游戲解壓最合適 瀏覽:508
安卓怎麼搞黑色的界面 瀏覽:961