Java 使用gui从新类获取返回值

Java 使用gui从新类获取返回值,java,swing,Java,Swing,我有一个类,它扩展了JFrame来下订单。 在中间,我有一个按钮,打开一个新窗口,用来查找一篇文章。< /P> 我需要的是: 当我点击Btnewarticle,搜索完新文章,并在新窗口中确认后,我将得到返回文章代码 单击Btnewarticle-->(打开新窗口查找文章)-->确认选择-->作为返回我获取文章代码 可能吗 谢谢看看Java对话框: 在上面的教程中,他们解释了如何创建自定义对话框,如下面的对话框: (来源:) 它们通过给子对话框一个对其父对话框的引用来处理返回值,在父对话框中,

我有一个类,它扩展了JFrame来下订单。 在中间,我有一个按钮,打开一个新窗口,用来查找一篇文章。< /P> 我需要的是: 当我点击Btnewarticle,搜索完新文章,并在新窗口中确认后,我将得到返回文章代码

单击Btnewarticle-->(打开新窗口查找文章)-->确认选择-->作为返回我获取文章代码

可能吗


谢谢

看看Java对话框:

在上面的教程中,他们解释了如何创建自定义对话框,如下面的对话框:


(来源:)


它们通过给子对话框一个对其父对话框的引用来处理返回值,在父对话框中,它在关闭时填充相关的值。

对我来说,这一原则起到了作用:

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
}

检查艾奥贝的答案,老实说我迷路了。在OrdersFrame中我有:protected void newArticle_actionPerformed(ActionEvent e){newArticle();}和在newArticle中:protected void saveArticle_actionPerformed(ActionEvent e){//code来执行此操作。dispose();}我真的不知道如何在返回时获取ArticleCode。从Java对话框的例子中,我不明白有多少帮助给OrdersFrame一个对“父”对话框的引用,即生成OrdersFrame的GUI。在
code中执行此操作。dispose()
您可以执行类似于
parent.setChosenArticleCode(codeFromDialog)
的操作。您可以检查我的代码有什么问题吗?我发送了(什么是订单…),在第260行有一个Nuovoga方法。(Nuovoga)第199行有Save()操作。。。。