2012-04-27 81 views
3

我需要一些關於JDialog的建議。JDialog輸入建議

我需要抓住「輸入」數據,我想知道,什麼是最好的方式來做到這一點。好吧,這裏是完整的問題。當用戶單擊按鈕(位於JFrame上)時,JDialog彈出,並且有3個用於entrys和一個組合框的文本字段。用戶按下ok後,我需要在JFrame中返回這些數據。那麼,我可以在我的方式做到這一點,但那太多的意大利麪代碼:))我應該使用什麼樣的監聽器?如果你願意給我的代碼示例,我將感激:)

+0

你讀過[對話框上的Java教程](http://docs.oracle.com/javase/教程/ uiswing /組件/ dialog.html)? – assylias 2012-04-27 17:26:05

+0

是的,但我不能爲此使用JOptionPane – hrza 2012-04-27 17:28:00

+0

看這裏:http://stackoverflow.com/questions/5752307/how-to-retrive-value-from-jtextfield-in-java-swing。 – Anonymous181 2012-04-28 17:43:11

回答

1

嗯,有很多的解決它的辦法,也許你可以嘗試用類似以下的接口的委託方法:

public interface DialogListener { 
    public boolean okClicked(String input1, String input2, String input3, String combo); 
    public void cancelClicked(); 
} 

(布爾值是否決定是否關閉對話框)。

如果您使用MVC方法並將該組件添加爲自定義對話框的偵聽器,請在您的框架或框架控制器中實施。

另一種方法是在對話框中設置屬性,然後你的框架或控制器可以查詢輸入值的對話框。

這取決於你想要的東西的通用性。

你也可以擁有像成才這是更通用的,可重複使用,但不太方便:

public interface DialogListener { 
    public boolean okClicked(JDialog dialog, Map<String, JComponent> components); 
    public void cancelClicked(); 
}