2012-03-09 80 views
1

我做了一個擴展jframe的類。 我有一個邊框佈局的jframe和一些組件和jpanel絕對佈局,以容納一些按鈕和一個jcombobox。組合框包含表中的一些值。表格從mysql查詢中獲取值。我通過按鈕刪除或添加一些記錄,然後更新表格。刷新數據變化的Jframe

除了不刷新值的組合框之外,所有的工作都很棒。爲了工作,我必須關閉jframe並再次打開它。我讀了很多關於重繪等的文章和教程......但似乎沒有任何工作在我的情況。動作偵聽器也是擴展jframe的同一類。

任何方式來做到這一點? 請保持簡單,因爲我是java編程的新手。 謝謝!

+2

放了一些代碼,看看發生了什麼事情。一個SSCCE將是理想的(http://sscce.org) – 2012-03-09 07:46:58

+0

您是否在操作後重新加載組合框中的值? – 2012-03-09 07:51:55

+0

您是否嘗試過在JComboBox上重新驗證()後更改其模型? – 2012-03-09 08:03:30

回答

3

您是否聽說過SwingUtilities.invokeLater(new Runnable())java.awt.EventQueue.invokeLater(new Runnable())

閱讀此線程可能是有用的:Concurrency in Swing

示例代碼片段,您可以添加到您的主要方法:

java.awt.EventQueue.invokeLater(new Runnable() { 
    public void run() { 
     JFrame frame = new JFrame(); 
     frame.setVisible(true); 
       ... 
    } 
}); 
+0

謝謝!我從來沒有聽說過這個。我現在就讀! – Vagelism 2012-03-09 07:55:12

+0

好的...我讀了它,說實話,我不明白很多東西。有關如何使用此代碼的任何示例? – Vagelism 2012-03-09 08:02:57

+0

@GagandeepBali我認爲你的材料更好,我只是想給OP一個想法。 – Juvanis 2012-03-09 08:06:12