2017-06-10 5 views
0

Dies ist mein Code, den ich benutze, aber wenn ich versuche, dataArray Objekt zu drucken, dann werden Daten nicht in JTable angezeigt. Welche Modelleigenschaften der Tabelle zum Drucken von Objekt-Array-Werten können verwendet werden und wie?Wie Objekt Array in JTable anzeigen?

public class ShowAddressForm extends javax.swing.JFrame { 

    Object data[][]; 
    Object dataArray[][]; 
    int count = 0; 
    String st; 

    public ShowAddressForm(String fname , String str) { 
     super(fname); 
     st = str; 
     initComponents(); 

     fillTable(); 
    } 

    public void fillTable() 
    { 
int count = 0; 
     String str; 

     try 
     { 
      BufferedReader br = new BufferedReader(new FileReader("D:\\JavaPrograms\\Contact Management System\\InputFiles\\AddressFile")); 

      while((str = br.readLine()) != null) 
      { 
       count++; 
      } 
      br.close(); 
     } catch (Exception e) 
     { 

     } 

     Object id; 
     Object name; 

     data = new Object[count][7]; 

     int i = 0 , j = 0 , m; 

     try 
     { 
      BufferedReader buffrea = new BufferedReader(new FileReader("D:\\JavaPrograms\\Contact Management System\\InputFiles\\AddressFile")); 

      while((str = buffrea.readLine()) != null) 
      { 
       StringTokenizer token = new StringTokenizer(str , "*"); 

       int n = token.countTokens(); 

       id = token.nextElement(); 
       name = token.nextElement(); 

       String strNameLow = name.toString().toLowerCase(); 
       String strNameUpp = name.toString().toUpperCase(); 

       if(strNameLow.startsWith(st.toLowerCase()) || strNameUpp.startsWith(st.toUpperCase())) 
       { 
        data[i][0] = id; 
        data[i][1] = name; 

        for(j = 2 ; j < n ; j++) 
        { 
         data[i][j] = token.nextElement(); 
        } 
        i = i + 1; 
       } 
      } 

      buffrea.close(); 
     } catch(IOException ioe){ 
      System.out.println("Error : " + ioe.toString()); 
     } 

     dataArray = new Object[i][7]; 
     for(int a = 0 ; a < i ; a++) 
     { 
      for(int b = 0 ; b < 7 ; b++) 
      { 
       dataArray[a][b] = data[a][b]; 
      } 
     } 

     //Here is the code to print dataArray object which i used but it is not working, when i am run my program it is print "[Ljava.lang.Object;@1cc2e30" in table's first cell[0][0] position 

     DefaultTableModel model = (DefaultTableModel)this.data_table.getModel(); 
     model.addRow(dataArray); 
} 
+1

1) Für bessere Hilfe, früher, ein [MCVE] oder [kurze, selbständige, korrekte Beispiel] (http://www.sscce.org/). Verwenden Sie einige fest codierte Daten, um die Textdatei zu ersetzen. 2) * ".. in Java in Netbeans" * Die Lösung ist in Java-Code zu finden, nicht in der IDE, daher ist 'Netbeans' irrelevant. 3) 'catch (Exception e) {}' Ignoriere Ausnahmen nicht! Sie informieren uns genau, was schief gelaufen ist. Wenn keine Protokollierung implementiert ist, rufen Sie mindestens 'Throwable.printStackTrace()' auf. –

+0

Sie fügen dem Frame niemals die JTable/JScrollPane hinzu – camickr

Antwort

0

Ich füllte Daten in einer JTable wie folgt. Vielleicht möchten Sie es ausprobieren, indem Sie es an Ihren Code anpassen. Variable und Sachen sind in Spanisch, ersetzen Sie sie einfach mit dem, was Sie brauchen. In meinem Fall ist es eine Tabelle mit 4 Spalten, die ein Datum, eine Punktzahl, Dauer und maximale Zuschauer darstellen.

private void fillJTable(){ 
     //creating data to add into the JTable. Here you might want to import your proper data from elsewhere 
     Date date = new Date(); 

     UserReplay rep1 = new UserReplay(date, 12, 13,14); 
     UserReplay rep2 = new UserReplay(date, 2,34,5); 

     ArrayList<UserReplay> usuaris = new ArrayList<>(); 
     usuaris.add(rep1); 
     usuaris.add(rep2); 
//----Filling Jtable------ 
     DefaultTableModel model = (DefaultTableModel) view.getTable().getModel(); 
     model.addColumn("Fecha"); 
     model.addColumn("Puntuación"); 
     model.addColumn("Tiempo de duración"); 
     model.addColumn("Pico máximo de espectadores"); 

     for (int i = 0; i < usuaris.size(); i++){ 
      Vector<Date> fecha = new Vector<>(Arrays.asList(usuaris.get(i).getDate())); 
      Vector<Integer> puntuacion = new Vector<>(Arrays.asList(usuaris.get(i).getPuntuacion())); 
      Vector<Integer> tiempo = new Vector<>(Arrays.asList(usuaris.get(i).getTiempo())); 
      Vector<Integer> espectadors = new Vector<>(Arrays.asList(usuaris.get(i).getTiempo())); 

      Vector<Object> row = new Vector<Object>(); 
      row.addElement(fecha.get(0)); 
      row.addElement(puntuacion.get(0)); 
      row.addElement(tiempo.get(0)); 
      row.addElement(espectadors.get(0)); 
      model.addRow(row); 
     } 

    }