JFrame при запуске программы форма не появляется - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день, начал осваивать Яву, и тут же наткнулся на первые грабли. Создал приложение по этому пособию https://netbeans.org/kb/docs/java/gui-functionality_ru.html. Запускаю NumberAddition.jar и форма не появляется, только сообщение hello world:
Листинг программы
  1. java -jar NumberAddition.jar
  2. Hello, World!
Вот код главного класса:
Листинг программы
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package numberaddition;
  7. /**
  8. *
  9. * @author skripov.in
  10. */
  11. public class main {
  12. /**
  13. * @param args the command line arguments
  14. */
  15. public static void main(String args[]){
  16. System.out.println("Hello, World!");
  17. }
  18. }
А вот код формы:
Листинг программы
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package numberaddition;
  7. /**
  8. *
  9. * @author skripov.in
  10. */
  11. public class NumberAdditionUI extends javax.swing.JFrame {
  12. /**
  13. * Creates new form NumberAdditionUI
  14. */
  15. public NumberAdditionUI() {
  16. initComponents();
  17. }
  18. /**
  19. * This method is called from within the constructor to initialize the form.
  20. * WARNING: Do NOT modify this code. The content of this method is always
  21. * regenerated by the Form Editor.
  22. */
  23. @SuppressWarnings("unchecked")
  24. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  25. private void initComponents() {
  26. jScrollPane1 = new javax.swing.JScrollPane();
  27. jTextArea1 = new javax.swing.JTextArea();
  28. jButton1 = new javax.swing.JButton();
  29. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  30. jTextArea1.setColumns(20);
  31. jTextArea1.setRows(5);
  32. jScrollPane1.setViewportView(jTextArea1);
  33. jButton1.setText("jButton1");
  34. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  35. getContentPane().setLayout(layout);
  36. layout.setHorizontalGroup(
  37. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  38. .addGroup(layout.createSequentialGroup()
  39. .addContainerGap()
  40. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  41. .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
  42. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  43. .addGap(0, 0, Short.MAX_VALUE)
  44. .addComponent(jButton1)))
  45. .addContainerGap())
  46. );
  47. layout.setVerticalGroup(
  48. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  49. .addGroup(layout.createSequentialGroup()
  50. .addContainerGap()
  51. .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE)
  52. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 34, Short.MAX_VALUE)
  53. .addComponent(jButton1)
  54. .addContainerGap())
  55. );
  56. pack();
  57. }// </editor-fold>
  58. /**
  59. * @param args the command line arguments
  60. */
  61. public static void main(String args[]) {
  62. /* Set the Nimbus look and feel */
  63. //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  64. /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  65. * For details see [url]http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html[/url]
  66. */
  67. try {
  68. for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  69. if ("Nimbus".equals(info.getName())) {
  70. javax.swing.UIManager.setLookAndFeel(info.getClassName());
  71. break;
  72. }
  73. }
  74. } catch (ClassNotFoundException ex) {
  75. java.util.logging.Logger.getLogger(NumberAdditionUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  76. } catch (InstantiationException ex) {
  77. java.util.logging.Logger.getLogger(NumberAdditionUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  78. } catch (IllegalAccessException ex) {
  79. java.util.logging.Logger.getLogger(NumberAdditionUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  80. } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  81. java.util.logging.Logger.getLogger(NumberAdditionUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  82. }
  83. //</editor-fold>
  84. /* Create and display the form */
  85. java.awt.EventQueue.invokeLater(new Runnable() {
  86. public void run() {
  87. new NumberAdditionUI().setVisible(true);
  88. }
  89. });
  90. }
  91. // Variables declaration - do not modify
  92. private javax.swing.JButton jButton1;
  93. private javax.swing.JScrollPane jScrollPane1;
  94. private javax.swing.JTextArea jTextArea1;
  95. // End of variables declaration
  96. }
Видимо эту форму надо как то вызвать из главного класса, но я не знаю как. В дельфи помню делал Form1.show() и все работало. Подскажите что может быть за ерунда? Стоит Netbeans 8.0.2. Исходники прикладываю. NumberAddition.zip

Решение задачи: «JFrame при запуске программы форма не появляется»

textual
Листинг программы
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package numberaddition;
  7.  
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.io.InputStreamReader;
  11. import java.io.OutputStreamWriter;
  12. import java.net.URL;
  13. import java.net.URLConnection;
  14.  
  15. /**
  16.  *
  17.  * @author skripov.in
  18.  */
  19. public class Requester {
  20.     /**
  21.      * Метод читает из потока данные и преобразует в строку
  22.      * @param in - входной поток
  23.      * @param encoding - кодировка данных
  24.      * @return - данные в виде строки
  25.      */
  26.     private String readStreamToString(InputStream in, String encoding) throws IOException {
  27.         StringBuffer b = new StringBuffer();
  28.         InputStreamReader r = new InputStreamReader(in, encoding);
  29.         int c;
  30.         while ((c = r.read()) != -1) {
  31.             b.append((char)c);
  32.         }
  33.         return b.toString();
  34.     }
  35.    
  36.     public void postExample(String url, QueryString query) throws IOException {
  37.         //устанавливаем соединение
  38.         URLConnection conn = new URL(url).openConnection();
  39.         //мы будем писать POST данные в out stream
  40.         conn.setDoOutput(true);
  41.        
  42.         OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(), "ASCII");
  43.         out.write(query.toString());
  44.         out.write("\r\n");
  45.         out.flush();
  46.         out.close();
  47.        
  48.         //читаем то, что отдал нам сервер
  49.         String html = readStreamToString(conn.getInputStream(), "UTF-8");
  50.        
  51.         //выводим информацию в консоль
  52.         System.out.println("URL:" + url);
  53.         System.out.println("Html:\n" + html);
  54.     }
  55.    
  56.     public String getExample(String url, QueryString query) throws IOException {
  57.         //устанавливаем соединение
  58.         URLConnection conn = new URL(url + "?" + query).openConnection();
  59.         //заполним header request парамеры, можно и не заполнять
  60.         conn.setRequestProperty("Referer", "http://google.com/http.example.html");
  61.         conn.setRequestProperty("Cookie", "a=1");
  62.         //можно установить и другие парамеры, такие как User-Agent
  63.        
  64.         //читаем то, что отдал нам сервер
  65.         String html = readStreamToString(conn.getInputStream(), "UTF-8");
  66.        
  67.         //выводим информацию в консоль
  68. //      System.out.println("URL:" + url);
  69. //      System.out.println("Html:\n" + html);
  70.         return html;
  71.     }
  72.    
  73.     public String send() throws IOException {
  74.         QueryString q = new QueryString()
  75.             .add("login","admin")
  76.             .add("password", "pass");
  77.  
  78.         Requester e = new Requester();
  79.         return e.getExample("http://juravskiy.ru/", q);
  80.     }
  81.    
  82.     public static void main(String[] args) throws IOException {
  83.  
  84.         QueryString q = new QueryString()
  85.             .add("login","admin")
  86.             .add("password", "pass");
  87.        
  88.         Requester e = new Requester();
  89.         e.getExample("http://juravskiy.ru/", q);
  90.         e.postExample("http://juravskiy.ru/", q);
  91.     }
  92. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы