ArrayList to String[][] für JTable

xip

Bekanntes Mitglied
Hallo,

bin gerade so ein bischen am verzweifeln.

Wollte ein einspaltigen JTable befüllen mit Einträgen aus einer ArrayList.

Dachte mir:

ArrayList.toArray()

wird das schon klären, aber schein nicht so ganz hinzuhauen. Auch mit casting komme ich nicht weiter. Habt ihr da eine Idee?

lg
 
deutlicher möchtest du nicht werden?,
bisschen Code, was ist derzeit das Problem,
wo kannst du z.B. einen Parameter nicht übergeben oder ähnliches?
was ist in der Liste drin?
 
das ist ein einfaches String array

Java:
ArrayList test = new ArrayList();

test.add("Hallo"); // einfach nen paar Werte rein.
test.add("du");
test.add("da");

//und jetzt das ganze in ein String Array damit ich das dem JTable Constuktor übergeben kann.

String[][] zeilen = test.toArray();

String[] spalten = {"Spalte"};

JTable table = new JTable(array,spalten)
 
nun, eine Liste die drei Strings enthält, wird ja wohl eher ein String[] der Länge 3, kein String[][]

das müsstest du selber erstellen oder vorher drei String[] in die Liste einfügen und dann toArray() benutzen
 
Entweder Du erstellst Dir ein TableModel, das mit einer ArrayList umgehen kann oder Du erstellst Dir gleich ein verschachteltes Array.

Alternativ kann man auch verschachtelte Vectoren verwenden.
 
mmh, ich glaube ich hab da noch den Wurm drinnen:

Java:
ArrayList<String[]> test = new ArrayList<String[]>();
 
String[] str_zeile = {"1.Zeile"};
test.add(str_zeile) // einfach nen paar Werte rein.
String[] str_zeile2 = {"2.Zeile"};
test.add(str_zeile2) // einfach nen paar Werte rein.
String[] str_zeile3 = {"3.Zeile"};
test.add(str_zeile3) // einfach nen paar Werte rein.
 
//und jetzt das ganze in ein String Array damit ich das dem JTable Constuktor übergeben kann.
 
String[][] zeilen = test.toArray();
 
String[] spalten = {"Spalte"};
 
JTable table = new JTable(array,spalten)

Tja, klappt immer noch nicht! Immer noch Carstingfehler!!!
 
nun, dass toArray() Object[] zurückliefert ist ja auch kein Geheimnis oder?
Java:
String[][] zeilen = (String[][])test.toArray(new String[0][]);

edit:
String[][] zeilen = test.toArray(new String[0][]);
 
Zuletzt bearbeitet von einem Moderator:
machs halt einfach manuel...

Java:
      ArrayList<String> test = new ArrayList<String>();
      
      test.add("Hallo"); // einfach nen paar Werte rein.
      test.add("du");
      test.add("da");       
       
      String[][] zeilen = new String[test.size()][1];
      for(int i =0; i < test.size(); i++){
         zeilen[i][0] = test.get(i);
      }
 
vielen Dank hat geklappt.

aber,

String[][] zeilen = (String[][])test.toArray(new String[0][]);

warum du am Ende ein new String[0][] übergibst ist mir schleierhaft.
 
die Beschreibung der Methode hast du auch schon gelesen?
(nicht toArray() sondern toArray() mit Parameter, obwohl, am besten gleich beide)
 

Zurück
Oben