доступ к методам-членам класса помощника из основного класса (редактор свинга netbeans) - PullRequest
2 голосов
/ 22 июня 2010

Я только что начал с программирования Gui в NetBeans (используя шаблон Java Desktop Application).Однако я уже застрял.В моем основном классе у меня есть несколько методов, которые можно вызывать из Gui.Эти методы делают что-то с внешним файлом, и в случае ошибки они должны открыть новое окно с сообщением об ошибке.

Однако я не могу получить доступ к методам члена класса Gui из моего основного классапоэтому я не могу открыть новое окно.Вот как основной класс netbeans (= MyProgrammApp.class) вызывает класс gui (MyProgrammView.class).

//MyProgrammApp.class:
public class MyProgrammApp extends SingleFrameApplication {

@Override protected void startup() {
        show(new MyProgrammView(this));
    }

public static void main(String[] args) {
        launch(MyProgrammApp.class, args);
    }

    [...]    
    }

, и это соответствующая часть конструктора класса gui:

//MyProgrammView.class:
public MyProgrammView(SingleFrameApplication app) {
        super(app);

        initComponents();

        [...]
        }

у этого класса графического интерфейса есть открытый метод showErrorBox, который открывает окно с информацией об ошибке.

Моя проблема в том, что я не понимаю процесс, с которым экземплярGUI создан.Я был бы очень признателен, если бы кто-нибудь мог рассказать мне о том, как я могу получить доступ к методу showErrorBox из MyProgrammApp.class.

1 Ответ

2 голосов
/ 22 июня 2010

В этой строке:

show(new MyProgrammView(this));

Вы создаете свой фрейм, и он отображается, но вы нигде не сохраняете ссылку на фрейм.

Что вам нужно сделать, это создатьприложение и сохранить его на член.Затем вы можете вызывать методы для этого.

Я не уверен, как именно Netbeans запускает приложение, но вы бы сделали что-то похожее на следующее:

MyProgrammView view = new MyProgrammView(this)
show(view);

// now you can call methods on view
view.showErrorBox();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...