我有一個擴展JFrame的類來完成訂單。 在中間我有一個按鈕,打開一個用於查找文章的新窗口。使用gui從新類獲得返回值
我需要的是: 當我點擊btnNewArticle,搜索新文章後,並在新窗口中確認,我會得到返回文章代碼。
點擊btnNewArt - >(打開新窗口查找文章) - >確認選擇 - >作爲返回我得到文章代碼。
可能嗎?
感謝
我有一個擴展JFrame的類來完成訂單。 在中間我有一個按鈕,打開一個用於查找文章的新窗口。使用gui從新類獲得返回值
我需要的是: 當我點擊btnNewArticle,搜索新文章後,並在新窗口中確認,我會得到返回文章代碼。
點擊btnNewArt - >(打開新窗口查找文章) - >確認選擇 - >作爲返回我得到文章代碼。
可能嗎?
感謝
對於我這個原則的工作:
public class ArticleSearchDialog extends JDialog {
public static ArticleId execute(Frame parent) {
ArticleSearchDialog dialog = new ArticleSearchDialog(parent, true);
dialog.setVisible(true);
return dialog.getSelectedArticle();
}
private ArticleId getSelectedArticle() {
return selectedArticle;
}
private void jbCancelActionPerformed(ActionEvent evt) {
selectedArticle = null;
setVisible(false);
dispose();
}
private void jbOkActionPerformed(ActionEvent evt) {
selectedArticle = ...; //TODO
setVisible(false);
dispose();
}
// All the rest of the dialog code.
}
接着,電話變得非常簡單:
ArticleId articleId = ArticleSearchDialog.execute(this);
if (articleId != null) {
//TODO
}
看一看Java的對話框:How to Make Dialogs。
在上面的教程,它們解釋如何做到自定義對話框,例如下面的一個:
http://download.oracle.com/javase/tutorial/figures/uiswing/components/CustomizedDialog2Metal.png
他們處理由給孩子的對話中引用它的父對話框返回值,在它在關閉時填入相關的價值。
說實話我失去了。 在OrdersFrame我有: 保護無效newArticle_actionPerformed(ActionEvent的發送){ \t \t新NewArticle(); \t} \t \t 和NewArticle: \t保護無效saveArticle_actionPerformed(ActionEvent的發送){ \t \t //代碼做 \t \t this.dispose(); \t \t} \t \t 我真的不知道該怎麼做才能獲得ArticleCode的回報。 並從Java對話框例如我不明白多 HELP – gerpaick 2010-10-07 07:56:20
給這個OrdersFrame到「父」對話框中的引用,也就是派生的OrdersFrame的GUI。在執行this.dispose()的代碼中,你可以做一些類似'parent.setChosenArticleCode(codeFromDialog)'的操作。 – aioobe 2010-10-07 07:58:57
你能檢查我的代碼有什麼問題嗎?我發送了http://CodeTidy.com/217/(什麼是訂單..),並在260行有一個NuovaRiga方法。 http://CodeTidy.com/218/(NuovaRiga)和199行有Save()動作.... – gerpaick 2010-10-07 08:23:48
檢查aioobe的答案,這是更好 – 2010-10-07 07:41:53