使用gui从新类获取返回值

时间:2010-10-07 07:31:54

标签: java swing

我有一个扩展JFrame来创建订单的类。 在中间我有一个按钮,打开一个用于查找文章的新窗口。

我需要的是: 当我点击btnNewArticle,搜索新文章后,在新窗口中确认后,我将获得返回文章代码。

点击btnNewArticle - > (打开新窗口查找文章) - >确认选择 - >作为回报我得到商品代码。

有可能吗?

由于

2 个答案:

答案 0 :(得分:1)

查看Java对话框:How to Make Dialogs

在上面的教程中,他们解释了如何进行自定义对话框,如下所示:

http://download.oracle.com/javase/tutorial/figures/uiswing/components/CustomizedDialog2Metal.png

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

答案 1 :(得分:0)

对我来说,这个原则有效:

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
}