2012-08-26 113 views
1

我正在製作數據庫應用程序,並且正在解決這個問題一週。我也不確定如何發佈標題到我的問題,但我希望你會明白。我有兩個框架:城市和國家。將變量從一個jframe傳遞到另一個jframe而不關閉它們

城市框架:

enter image description here 國家框架:

enter image description here

當我在市點擊 「搜索」 按鈕框它打開了我一個國家框架。

table.addMouseListener(new MouseListener(){ 

     @Override 
     public void mouseClicked(MouseEvent e) { 
      int selRow = table.getSelectedRow(); 

      String tableValCountry = (String)table.getValueAt(selRow, 1); 
     } 

     @Override 
     public void mouseEntered(MouseEvent e) { 
     } 

     @Override 
     public void mouseExited(MouseEvent e) { 
     } 

     @Override 
     public void mousePressed(MouseEvent e) { 
     } 

     @Override 
     public void mouseReleased(MouseEvent e) { 
     }}); 

然後我想傳遞tableValCountry變量城市框架和更新的一個:當我點擊在國家框架表是用這種方法通過從選定的行和列「國家」到一個變量tableValCountry值通過點擊添加按鈕來顯示文本框。我怎樣才能做到這一點?提前致謝。

P.S.我可以用getter和setter來做到這一點,但是我需要在我的城市框架中有一些「獲取」按鈕來檢索值(我不想這麼做)。城市框架也必須始終可見。

+0

注意,有在表選擇的變化更好的聽衆則'MouseListener'(即'ListSelectionListener'加入的選擇模型'JTable') – Robin

+0

去這裏,看看爲什麼我選擇了MouseListener而不是ListSelectionListener:http://stackoverflow.com/questions/11640905/java-listselectionlistener –

回答

2

The Use of Multiple JFrames, Good/Bad Practice?

對於這個用例,模態對話框將是完美的。對話框設置可見後,可以查詢這些值。

+0

我看到那篇文章,一個百萬倍。當然,我知道使用多幀的程序對用戶來說非常不友好。這筆交易是我的「城市」框架將由多個面板添加到一個選項卡窗格(因此「城市」將只是一個面板)組成的一個框架(主窗口)。但請告訴我更多關於模態對話框的信息。任何鏈接? –

+0

好的,會做的。感謝您的建議btw。 –

2

Swing的做事方式是讓搜索面板實現getSelectedCountry()方法和當用戶選擇國家時通知的偵聽器列表。

當用戶點擊搜索時,您的主要組件將創建搜索面板並將其自身註冊爲搜索面板事件的偵聽器。事件處理程序將獲取搜索面板的選定國家和填充文本字段。

搜索面板實現只需在用戶選擇國家時通知其所有偵聽器。

我認爲this article覆蓋得很好。

+0

任何與例子的鏈接? –

+0

編輯並加了一個 – sjr

0

我面臨同樣的問題,但我的替代解決方案將線程機制

相關問題