Получить возвращаемое значение из нового класса с графическим интерфейсом - PullRequest
0 голосов
/ 07 октября 2010

У меня есть класс, который расширяет JFrame для выполнения заказов.в середине у меня есть кнопка, которая открывает новое окно, которое используется, чтобы найти статью.

Что мне нужно: Когда я нажимаю btnNewArticle, после поиска новой статьи, и подтвердить в новом окне, я получув качестве кода возврата товара.

Нажмите btnNewArticle -> (откройте новое окно, чтобы найти статью) -> подтвердить выбор -> в качестве возврата я получу код товара.

Возможно ли это?

Спасибо

Ответы [ 2 ]

1 голос
/ 07 октября 2010

Посмотрите на диалоговые окна Java: Как создавать диалоги .

В приведенном выше руководстве они объясняют, как создавать настраиваемые диалоговые окна, такие как приведенные ниже:*http://download.oracle.com/javase/tutorial/figures/uiswing/components/CustomizedDialog2Metal.png

Они обрабатывают возвращаемые значения, давая дочернему диалогу ссылку на его родительский диалог, в котором он заполняет соответствующие значения при закрытии.

0 голосов
/ 07 октября 2010

Для меня этот принцип сработал:

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...