2014-01-15 6 views
10

Ich habe eine JFrame Form, die JTextField s, JCombobox usw. hat und ich bin in der Lage, diese Werte an Variablen zu empfangen, und jetzt möchte ich die empfangenen Daten hinzufügen zu JTable in einer neuen Zeile, wenn der Benutzer auf Hinzufügen oder so ähnlich klickt.So fügen Sie eine Datenzeile zu Jtable von Werten aus Jtextfield und Comboboxen

Ich habe erstellt JTable mit net-beans das Problem ist, was wäre der Code, um Daten aus diesen Variablen zu den Zeilen der Tabelle hinzuzufügen. Ein grundlegendes Beispiel würde geschätzt werden. Ich habe zahlreiche Beispiele probiert und habe den Code ActionListener der JButton hinzugefügt aber es passiert nichts. Die Beispiele, die ich versuchte, sind. How to add row in JTable? und How to add rows to JTable with AbstractTableModel method?

Jede Hilfe wäre willkommen.

+0

Während der Erstellung von jtable würden Sie ein Tabellenmodell verwenden. Rufen Sie die Methode addRow() des Tabellenmodells auf, um die neue Datenzeile hinzuzufügen. – Rahul

+0

Einverstanden Herr ich weiß, dass dies mit Netbeans verwandt ist, aber ich möchte Grundidee, wie ich die Daten in Zeile erhalten hinzufügen. Ein grundlegendes Beispiel oder bereits existierendes Beispiel würde genügen, das meine Notwendigkeit erfüllt – Nawaz

+0

@ user3197695 'aber ich will zur Grundidee, wie ich die Daten addieren werde, die empfangen werden - alles wird im offiziellen Oracle Tutorium beschrieben -, wie man Tabellen,' ein grundlegendes verwendet Beispiel oder bereits existierendes Beispiel würde genügen, das meine Notwendigkeit erfüllt - es gibt funktionierende Codebeispiele – mKorbel

Antwort

6

Sie können diesen Code als Vorlage verwenden bitte passen Sie es nach Ihrer Anforderung.

DefaultTableModel model = new DefaultTableModel(); 
List<String> list = new ArrayList<String>(); 

list.add(textField.getText()); 
list.add(comboBox.getSelectedItem()); 

model.addRow(list.toArray()); 

table.setModel(model); 

hier DefaultTableModel wird verwendet, um Zeilen in JTable hinzufügen, können Sie weitere Informationen here bekommen.

+1

Got it buddy haben erreicht, was ich wollte – Nawaz

22

Peeskillet ist lahm Tutorial für

Builder mit JTables in Netbeans GUI Arbeitsbereich auf der ganz rechts
  • Stellen Sie die Tabelle Spaltenüberschriften
    1. Highglight die Tabelle in der Entwurfsansicht dann gehen Sie auf Eigenschaften . Sollte ein Tab sein, der "Eigenschaften" sagt. Achten Sie auf die Tabelle und nicht die Bildlauffenster umgibt, oder der nächste Schritt nicht funktionieren
    2. Klicken Sie auf die ... Taste rechts von der Eigenschaft Modell zu markieren. Ein Dialog sollte erscheinen.
    3. Setzen Sie Zeilen auf 0, legen Sie die Anzahl der gewünschten Spalten und deren Namen fest.
  • Fügen Sie einen Knopf zum Rahmen somwhere hinzu. Diese Taste angeklickt werden, wenn der Benutzer bereit ist, eine Reihe

    1. der rechten Maustaste auf die Schaltfläche einreichen und wählen Events -> Action -> actionPerformed
    2. Sie sollten Code wie den folgenden automatisch generierten

      private void jButton1ActionPerformed(java.awt.event.ActionEvent) {} 
      
    sehen
  • Die jTable1 wird eine DefaultTableModel haben. Sie können für jeden Satz von Daten, wie von ein paar Textfelder, ein Kombinationsfeld und ein Kontrollkästchen

    private void jButton1ActionPerformed(java.awt.event.ActionEvent) { 
        String data1 = something1.getSomething(); 
        String data2 = something2.getSomething(); 
        String data3 = something3.getSomething(); 
        String data4 = something4.getSomething(); 
    
        Object[] row = { data1, data2, data3, data4 }; 
    
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); 
    
        model.addRow(row); 
    
        // clear the entries. 
    } 
    

Also mit Ihren Datenzeilen zum Modell hinzugefügt haben, können Sie diese Daten jedes Mal sammeln die Drücken Sie die Taste und fügen Sie sie dem Modell als Zeile hinzu.

+1

peeskillet und @eatSleepCode Vielen Dank, dass Sie mich Menschen gerettet haben. Wirklich vielen Dank. Ich habe erreicht, was ich wollte. – Nawaz

+0

Ich wurde von diesem Beitrag geholfen – humphrey

+0

Seien Sie nicht so bescheiden Peeskillet, das ist ein großes Tutorial! – Yster