java jtable defaulttablemodel_java – JTable和DefaultTableModel
我有一個(gè)表從我的本地MySQL服務(wù)器獲取信息.它很好地讀取數(shù)據(jù)并將其發(fā)布在GUI上.
我的問題是,當(dāng)我更改table命令時(shí),如何刷新表格,例如:
private String sql = "select * from profildb.tbl_detailed"; //to
private String sql = "select * from profildb.tbl_detailed where Y.."; //this
此操作將在我的Button Action Listener中處理;
JButton btnOK = new JButton("");
btnOK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if( (tfBirinci.getText().isEmpty() || tfBirinci.getText() == null) && (tfIkinci.getText().isEmpty() || tfIkinci.getText() == null ))
{
taLog.setText("Database alani bos birakilamaz...\n");
}
else if ( (!(tfBirinci.getText().isEmpty() )) && (tfIkinci.getText().isEmpty() || tfIkinci.getText() == null ) )
{
sql = ("SELECT * FROM " + tfBirinci.getText());
taLog.setText("Komut elde edildi : " + sql + "\n");
System.out.println("aaaa " + tfBirinci.getText());
//anaFrame.dispose();
//databaseHistoryCalistir(); doesnt work
}
else if ( ( !(tfBirinci.getText().isEmpty() ) && !(tfBirinci.getText() == null) ) && ( !(tfIkinci.getText().isEmpty() ) && !(tfBirinci.getText() == null) ) )
{
sql = ("SELECT * FROM " + tfBirinci.getText() + " WHERE " + tfIkinci.getText());
taLog.setText("Komut elde edildi : " + sql + "\n" );
System.out.println("bbbb " + tfBirinci.getText());
//anaFrame.dispose();
//databaseHistoryCalistir(); doesnt work
}else
taLog.setText("Lütfen Database alanini doldurunuz, aksi taktirde komut elde edilemez...\n");
}
});
那么,當(dāng)我更改字符串的語句時(shí),我需要實(shí)現(xiàn)什么才能更新表?
提前致謝. (給出一個(gè)關(guān)于DefaultTableModel的例子會(huì)很棒)
解決方法:
2)使用ResultsetTableModel之一
3)從Runnable #Thread調(diào)用SQL語句,但輸出到XxxTableModel必須在invokeLater內(nèi)部,更多在Concurency in Swing中關(guān)于事件調(diào)度線程(EDT)
4)從SwingWorker調(diào)用SQL語句,然后從progress(),publish()或done()輸出應(yīng)該在EDT上
5)DefaultTableModel不需要覆蓋方法fireXxxTableXxx,所有這些都正確實(shí)現(xiàn)
6)來自數(shù)據(jù)庫(ResultsetTableModel)和Runnable #Thread(SwingWorker)的邏輯表之間的區(qū)別是
>數(shù)據(jù)庫表(ResultsetTableModel)調(diào)用EDT上的所有更新,然后GUI等待所有事件完成,從數(shù)據(jù)庫加載數(shù)據(jù)期間GUI不負(fù)責(zé)任或凍結(jié)
> Runnable #Thread(SwingWorker)所有更新都來自backgourng任務(wù),GUI可用于鼠標(biāo)和鍵盤事件,
標(biāo)簽:java,mysql,swing,jtable,defaulttablemodel
來源: https://codeday.me/bug/20190630/1332781.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java jtable defaulttablemodel_java – JTable和DefaultTableModel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java产生的数字发送到页面_JAVA中
- 下一篇: php判断是否是文件_PHP判断文件是否