2013-09-25 57 views
1

在我們設計的應用程序中,我們有一個繼承自JFrame的類。這個類啓動一個JDialog派生類,它是模態的,以便捕獲來自最終用戶的一些輸入。由於新的要求,此派生類現在需要啓動不同的JFrame。在模態JDialog前彈出一個JFrame

我們面臨的問題是,如果我們將JDialog設置爲非模態對話框,那麼當我們使用setVisible(false)隱藏對話框時,JDialog中的數據不會被保存。

另一方面,如果我們保持模態,新的窗體不會啓動並始終隱藏。

任何想法爲什麼模態會影響對話框對象?

我終於可以通過在彈出的新框架中設置應用排除模式類型來解決這個問題!感謝所有人的幫助!

+0

*如果我們將JDialog設置爲非模態對話框,那麼當我們使用setVisible(false)隱藏對話框時,來自JDialog的數據不會保存*我不認爲對話的模態會影響您獲取數據的方式從它並處理它。 –

+0

哈利你好,我也不這麼認爲,這就是爲什麼我從來沒有看過這個選項,但顯然,當我隱藏對話框時,對象也被破壞,因此我失去了數據。我無法用其他方式解釋它!因此,我的難題,兩種情況下的處理過程都是相同的,但在一種情況下,它的工作原理和另一種情況下都不起作用! – user2815224

+0

關閉對話框或使用此對話框時應出現新框架? –

回答

0

我想說的形式不是,或只是問題的一部分。 問題是你如何保存你的數據。 當你隱藏對話框時,這不會自動發生,是嗎? 您很可能會收聽某些事件或按鈕操作以從對話框中提取並保存數據。 因此,您應該檢查一下提取並保存數據的機制,並查看它在模式關閉時未觸發的依賴性。

+0

不幸的是,該應用程序是由其他人設計的,我們對改變元素沒有太多控制權!非常感謝您的幫助! – user2815224

+0

即使您沒有更改代碼的可能性,也可以查看它以找出不工作的原因以及如何在不更改代碼的情況下使其工作。沒有真正能夠查看代碼,很難更具體。如果您需要進一步的幫助,您可以提供一個展示項目,其中包含顯示相同行爲的示例代碼。如果我的答案已經幫助你解決了你的問題,那麼如果你接受它作爲正確的答案會很好。 :-) – Vampire