2017-04-25 5 views
0

Ich habe zwei Tabellen und ich muss den Wert aus einer bestimmten Zelle in table_3 zu table_4 hinzufügen .. aber es funktioniert nicht. Irgendwelche Hilfe bitte?Fehler: java.lang.ArrayIndexOutOfBoundsException: 0> = 0

Code:

JTable table_3 = new JTable(TableModel2); 
final JTable table_4 = new JTable(TableModel3); 


JButton btnAdd = new JButton("add"); 
btnAdd.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
    int row = table_3.getSelectedRow(); 
    int column = table_3.getSelectedColumn(); 
    Object selectedPlanet = TableModel2.getValueAt(row, column); 
    int columnContainingPlanets = 0; 

    for (int index = columnContainingPlanets; index < TableModel3.getRowCount();index ++){ 
      Object value = TableModel3.getValueAt(index, columnContainingPlanets) ; 
      if (value == selectedPlanet) { 
      JOptionPane.showMessageDialog(panel_10,"This item was selected ,Please select another item"); 
      return; }} 

    TableModel3.addRow(new Object[] { selectedPlanet }); 
      } 
     }); 
+1

Variablennamen sollte nicht mit einem Großbuchstaben beginnen. Manche sind korrekt, andere nicht. Sei konsequent! Variablennamen sollten auch beschreibend sein. "3 und 4" ist nicht sehr beschreibend. Und die Modellnamen sind noch schlechter ("2 und 3"). Zumindest sollte der Modellname mit den Tabellennamen übereinstimmen, damit wir wissen, welches Modell zu welcher Tabelle gehört. Wir können nicht sagen, warum die Tabelle nicht aktualisiert wird. Haben Sie eine Debug-Anweisung hinzugefügt, um zu überprüfen, ob der Code ausgeführt wird? Wenn Sie weitere Hilfe benötigen, veröffentlichen Sie eine ordnungsgemäße [mcve], die das Problem veranschaulicht. Und stellen Sie sicher, dass der Code richtig formatiert ist, so dass er lesbar ist. – camickr

+0

yup, das ist richtig, aber nicht im Code zu beeinflussen, trotzdem danke für Ratschläge. –

+0

Ich warte immer noch auf deine [mcve]. – camickr

Antwort

1

Noch für Ihre Minimal, Complete, and Verifiable Example(MCVE) warten. Was lässt Sie glauben, dass das Problem in dem von Ihnen geposteten Code liegt? Bis ein Problem gelöst ist, sollte jede Frage ein einfaches Beispiel haben, das das Problem demonstriert, das beweist, dass Sie versucht haben, das Problem zu vereinfachen, um es besser zu debuggen.

Was ist der Punkt der Buchung der Fehlermeldung ohne Angabe der Codezeile, die das Problem verursacht? Wieder ein weiterer Grund, die MCVE zu posten. Sie wissen nicht, bis die Frage beantwortet wird, welche Informationen benötigt werden, um das Problem zu lösen.

Ohne all die Informationen können wir nur raten.

Als Neuling im Forum bekommen Sie eine Vermutung. Zukünftige Fragen erfordern ein MCVE

Meine Annahme ist, dass das "tableModel3" keine Spalten hat, so dass Sie dem Modell, das eine einzelne Spalte von Daten enthält, keine Zeile hinzufügen können.

So soll das Modell mit dem Code so etwas wie erstellt werden:

String[] columnNames = { "Planets" }; 
DefaultTableModel tableModel3 = new DefaultTableMNodel(columnNames, 0); 
+0

Ihre Schätzung ist richtig und tut mir leid, ich werde in Ihrem Rat in der nächsten Zeit arbeiten. Danke für deine Mühe .. –

Verwandte Themen