2015-03-17 2 views
1

Не знаю, может ли кто-нибудь помочь мне или нет. Назначение должно быть здесь примерно через 3 часа, и я довольно расстроен. Я не могу получить файл, который я читаю для отображения в JTextArea. Это все, что мне нужно сделать. Может ли кто-нибудь помочь?Вставить BufferedReader в JTextArea

public class Reader extends javax.swing.JFrame { 

/** 
* Creates new form Reader 
*/ 
public Reader() { 
    initComponents(); 
} 

public void displayText(){ 
    JLabel Text = new JLabel(); 
    add(Text); 
} 
/** 
* This method is called from within the constructor to initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is always 
* regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    jLabel1 = new javax.swing.JLabel(); 
    jScrollPane1 = new javax.swing.JScrollPane(); 
    jTextArea1 = new javax.swing.JTextArea(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N 
    jLabel1.setText("Contact Info"); 

    jTextArea1.setColumns(20); 
    jTextArea1.setRows(5); 
    jScrollPane1.setViewportView(jTextArea1); 
    jTextArea1.setEditable(false); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(54, 54, 54) 
      .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 477, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap(71, Short.MAX_VALUE)) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
      .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addGap(176, 176, 176)) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
      .addGap(25, 25, 25) 
      .addComponent(jLabel1) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 35, Short.MAX_VALUE) 
      .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 301, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addGap(64, 64, 64)) 
    ); 

    pack(); 
    setLocationRelativeTo(null); 
}// </editor-fold>       

/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) throws IOException { 
    /* Set the Nimbus look and feel */ 
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */ 
    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(Reader.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(Reader.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(Reader.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(Reader.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } 
    //</editor-fold> 

    BufferedReader br = new BufferedReader(new FileReader("file1.txt")); 
     try { 
      StringBuilder sb = new StringBuilder(); 
      String line = br.readLine(); 

      while (line != null) { 
       sb.append(line); 
       sb.append(System.lineSeparator()); 
       line = br.readLine(); 
      } 
      String everything = sb.toString(); 
     } finally { 
      br.close(); 
     }   


    /* Create and display the form */ 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new Reader().setVisible(true); 

     } 
    }); 
} 

// Variables declaration - do not modify      
private javax.swing.JLabel jLabel1; 
private javax.swing.JScrollPane jScrollPane1; 
private javax.swing.JTextArea jTextArea1; 
// End of variables declaration     
} 
+0

* «Назначение связано здесь около 3 часов, и я очень разочарован.» * Я бы посоветовал разработку более навыки управления временем, а не приходить сюда, когда это срочно, и вы расстроены. –

+1

BTW - см. ['JTextComponent.read (Reader, Object)'] (https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#read-java.io .Reader-java.lang.Object-). –

ответ

2

Move

BufferedReader br = new BufferedReader(new FileReader("file1.txt")); 
try { 
    StringBuilder sb = new StringBuilder(); 
    String line = br.readLine(); 

    while (line != null) { 
     sb.append(line); 
     sb.append(System.lineSeparator()); 
     line = br.readLine(); 
    } 
    String everything = sb.toString(); 
} finally { 
    br.close(); 
}   

В классах конструктор, public Reader() {, а затем использовать jTextArea1.setText(sb.toString()) применить текст к JTexArea

public Reader() { 
    initComponents(); 
    BufferedReader br = new BufferedReader(new FileReader("file1.txt")); 
    try { 
     StringBuilder sb = new StringBuilder(); 
     String line = br.readLine(); 

     while (line != null) { 
      sb.append(line); 
      sb.append(System.lineSeparator()); 
      line = br.readLine(); 
     } 
     jTextArea1.setText(sb.toString()) 
    } finally { 
     br.close(); 
    }   
} 

Сказав, что вы на самом деле не управлять вашим ресурсы хорошо, рассмотрите возможность использования чего-то большего ...

try (BufferedReader myReader = new BufferedReader(new FileReader("file1.txt"))) { 
    String text = null; 
    while ((text = myReader.readLine()) != null) { 
     jTextArea1.append(text + "\n"); 
    } 
} catch (IOException exp) { 
    exp.printStackTrace(); 
} 

Или еще проще ...

try (Reader myReader = new BufferedReader(new FileReader("file1.txt"))) { 
    jTextArea1.read(myReader, "Inventory"); 
} catch (IOException exp) { 
    exp.printStackTrace(); 
} 
+1

@AndrewThompson Проверьте дату, я работал по этому пути ... – MadProgrammer

+0

Согласен с вашим ответом. –

+0

@ScaryWombat Вы были на правильном пути, но код вроде беспорядок: P – MadProgrammer

Смежные вопросы