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

熱點內容
蘭州理工大學51單片機實驗 瀏覽:32
程序員需要高深嗎 瀏覽:98
農行app怎麼查詢公戶賬戶余額 瀏覽:330
美國疾控發防疫命令 瀏覽:141
用固定循環編程可以 瀏覽:880
硅膠壓縮比測試 瀏覽:801
vc命令行編譯c 瀏覽:674
php用戶登錄界面 瀏覽:82
安卓車載導航如何卸載自帶軟體 瀏覽:714
階乘的編程c 瀏覽:415
java視頻教程達內 瀏覽:825
單片機應該怎麼學 瀏覽:420
空氣壓縮機品牌名稱 瀏覽:346
word文檔部分內容加密 瀏覽:63
壓解壓軟體 瀏覽:936
java設置excel格式 瀏覽:957
單片機鎖存器地址怎麼看 瀏覽:576
手機硬體編程 瀏覽:835
如何去除你看文件夾時間 瀏覽:442
兩個加數的和的編程 瀏覽:796