У меня есть программа с несколькими классами, которые создают сложные объекты, с пользовательскими переменными и массивами определенных переменных. Я хочу связать функциональность этих классов с вызовами метода actionperformed () для определенных кнопок и других компонентов (таких как jTextPanes) в моем графическом интерфейсе NetBeans.
Мне действительно нужно перенести весь мой код в класс формы интерфейса пользователя? В настоящее время я не верю в это, поскольку я прошел программу отладки, проверяя состояние определенных переменных, и все так, как и должно быть. Однако, когда я нажимаю одну из моих «кнопок» на точку останова, экземпляр класса, используемого в форме пользовательского интерфейса, неожиданно становится «нулевым». Это озадачивает меня, поскольку ссылается на правильный экземпляр класса, пока я не нажму кнопку.
Я новичок в построении графического интерфейса NetBeans, что, вероятно, объясняет мою некомпетентность в этой области.
Все предложения приветствуются, ребята.
Это код, связанный с кнопкой, которую я нажимаю:
private void submitDetailsButtonMouseClicked(java.awt.event.MouseEvent evt)
{
//outputTextArea.setText("Get out");
dM.dHist2.frameStack[dM.dHist2.frameAmount].setAccomName("Win");
dM.dHist2.saveAndStoreFrame();
}
Здесь 'dM' является экземпляром класса DiscourseManager (моя собственная работа) внутри main, который находится здесь:
public static void main(String args[])
{
DiscourseManager dM = new DiscourseManager();
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new DialogueManagerUI().setVisible(true);
}
});
dM.startTransaction();
dM.runDemo();
}
Имейте в виду, что этот код находится внутри формы пользовательского интерфейса. Я объявляю локальный экземпляр dM в верхней части этой формы следующим образом:
public class DialogueManagerUI extends javax.swing.JFrame { public static DiscourseManager dM; .... }
Экземпляр класса распознается, что подтверждается, когда я достигаю своей точки останова, в строке dM.runDemo (). Однако, как только я нажимаю кнопку, и достигается другая точка останова (помещается одна на методе кнопки), он говорит, что dM равен нулю. Я надеюсь, что это просто глупая ошибка, которую я пропускаю, поскольку перестановка всего моего кода будет разрушать душу, просто добавив пользовательский интерфейс для демонстрационных целей.