Java GUI Netbeans, отображать вывод в текстовой области из класса в другом пакете - PullRequest
1 голос
/ 20 марта 2012

Мне нужно отобразить результат вычислений, которые я использовал для компиляции в стандартном Java-программировании (в Main clas) в тестовой области Java-свинга GUI в NetBeans, но у меня всегда возникала проблема с этим. Бьюсь об заклад, проблема в том, что моя строка для печати недоступна в классе GUI, вот моя часть кода в разгаре

private void predictActionPerformed(java.awt.event.ActionEvent evt) {                                        

        TextArea1.setText(Engine.Print.printresult(toarray));
        //JOptionPane.showMessageDialog(null,Engine.Print.printresult(toarray));
    //       TextArea1.setText(Retrieving.main(args));
    } 

и вот код в пакете Engine, Class Print, метод printresult, String [] printresult передается из другого класса и работает напрямую без графического интерфейса:

 public static void printresult(String[]toarray){
  for(int a=0; a<toarray.length;a++){
    System.out.println(toarray[a]);
  }

действительно нужна помощь. спасибо

1 Ответ

0 голосов
/ 21 марта 2012

Вы утверждаете:

На самом деле мне нужно отобразить значение моего расчета моей консоли в режиме свинга. Текстовая область, так как эту программу нужно визуализировать с помощью графического интерфейса, я думаю, что просто невозможно скопироватьвесь мой код в GUI, поскольку он содержит несколько классов, поэтому мне нужно только отправить результат в текстовое поле GUI swing, но я понятия не имею, что делать.Может кто-нибудь сказать мне, как это сделать, так как этот способ не работает.

Что вам нужно сделать в первую очередь, это переписать код расчета.Вы не показываете нам этот код, который делает невозможным угадать, что он делает или что делает неправильно, но я подозреваю, что он выполняет вычисления и выводит их на консоль, которая не будет работать для графического интерфейса.
Что я рекомендую вам сделать для своего кода вычисления без графического интерфейса пользователя:

  • Опять же, прежде всего, переписать свой код вычисления так, чтобы он соответствовал классу ООП
  • Он должен включать частные поля экземпляра, по крайней мере, один конструктор и открытые методы, чтобы разрешить передачу информации в этот класс, а также методы для извлечения результатов из класса, хотя некоторые методы будут делать оба.Ни один из этого кода не будет включать println в консоль, если только это не для целей отладки с идеей, что строки будут удалены в конечном «производственном» коде.
  • Этот класс или классы, описанные выше, будут вашей «моделью»"или мозг позади GUI.
  • Он не должен иметь (или очень ограничен) знаний о GUI (он должен быть" независимым "от GUI) и написан достаточно гибко, чтобы его можно было использовать в Swing GUI.консольная программа или любой другой пользовательский интерфейс, о котором вы только можете подумать.
  • Если вы хотите стать модным, дайте вашей модели объект PropertyChangeSupport, чтобы графический пользовательский интерфейс мог «прослушивать» модель на предмет изменений и реагировать на них.изменения.

То, что я рекомендую вам сделать для своего кода отображения графического интерфейса:

  • Это будет ваша модель "просмотра", и она также должна быть написана, чтобы соответствоватьпринципы объектно-ориентированного программирования.
  • Дайте представлению поле экземпляра модели, которую мы описали выше.Другими словами, ваше представление будет содержать внутри себя объект модели.
  • Пусть ваши контроллеры представления или слушатели взаимодействуют с моделью.Например, если JButton нажата, ее ActionListener информирует модель (вызывая соответствующий метод), что кнопка была нажата.Если модели требуется информация из графического интерфейса пользователя, например текст, содержащийся в JTextFields, то ActionListener извлечет этот текст и затем передаст информацию в модель с использованием параметров метода.
  • Зарегистрируйте свой GUI в качестве "слушателя""к модели, возможно, используя PropertyChangeListener, и таким образом он может реагировать на изменения в состоянии модели.

Эти предложения очень универсальны и поэтому могут быть не такимиполезно для вас, как вы или я хотел бы, но это необходимо, учитывая ограниченную информацию, которую мы знаем о вашей проблеме.Для получения более конкретной помощи, пожалуйста, дайте нам более конкретную и подробную информацию о вашей проблеме и вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...