# JTable Array Frage



## the_brain (30. Apr 2004)

Gibts irgendeine Möglichkeit ein Array einem JTable zu übergeben damit dieses mit den Daten des Arrays gefüttert wird?

JTable wird eigentlich durch ein zweidimensionales Array mit Daten gefüttert. Kann ich die Daten des Normalen Arrays in ein 2 dimensonales einfügen?

bzw. hat jemand eine Idee wie ich Daten die von der Festplatte in ein Array ausgelesen werden in ein JTable einfügen kann?


----------



## Beni (30. Apr 2004)

Must du halt ein bisschen umkopieren:


```
Object[] data = ...

int size = data.length;
Object[][] tableData = new Object[ size ][1];

for( int i = 0; i < size; i++ )
  tableData[i][0] = data[i];
```

Aber für eine eindimensionale Liste wäre vielleicht eine JList besser geeignet?

mfg Beni


----------



## Guest (30. Apr 2004)

welche Vorteile bringt mir denn eine JList gegenüber einem Array? Bzw. wie kann ich aus der Festplatte auch die Größe und das letzte Änderungsdatum in eine Sammlung einlesen um dies dann im JTable zu verwenden?
Verwende ich dafür einen Array bzw. was würdest du verwenden?


----------



## the_brain (30. Apr 2004)

ups, frage oben sollte von mir sein und nicht von "gast"  :roll:


----------



## Beni (30. Apr 2004)

Aus der Festplatte? Mit File#lastModified und File#length kannst du solche Infos bekommen.

Und JList ist eine graphische Komponente wie das JTable, nur dass die JList einen eindimensionalen Array darstellt (und das JTable einen 2d-Array).

mfg Beni


----------



## the_brain (1. Mai 2004)

hab noch ne Frage: kämpf gerade herum mit einem Datenfeld, dass in einer Klasse eingelesen wird und dieses Datenfeld möchte ich einer anderen Klasse übergeben, damit ich dieses dort benutzen kann. Kannst mir einen Tipp geben wie ich das am besten machen kann.

Danke!


----------



## Guest (1. Mai 2004)

ein weiteres problem ist bei meinem explorer aufgetreten und zwar:

ich habs jetzt zwar geschafft den inhalt meiner festplatte auszulesen. dieses erfolgt in einen string array und diesen weise ich einem 2 dimensionalen string array zu welcher wiederum in die jtable eingebunden wird. die daten werden nun zwar angezeigt, jedoch kann man damit nichts anfangen da sie nur strings und keine files sind.

welche möglichkeit gibt es die files an den jtable zu übergeben?


----------



## Roar (1. Mai 2004)

File#listFiles(); und dann in die JTable einbinden. 
ich hab mir dafür nen eigenen CellRenderer bzw. Editor geschrieben.


----------



## the_brain (1. Mai 2004)

wie verwende ich File#listFiles() genau? bzw. wie übergeb ich dies dann an mein jtable? mitttels array? bzw. wie bekomm ich die files in ein array? geht dies mittels einem file[] array? wenn ja wie mach ich das?

hab nochfolge des problem: kämpf gerade herum mit einem Datenfeld, dass in einer Klasse eingelesen wird und dieses Datenfeld möchte ich einer anderen Klasse übergeben, damit ich dieses dort benutzen kann. Kannst mir einen Tipp geben wie ich das am besten machen kann.


----------



## Roar (1. Mai 2004)

RTFM: http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#listFiles()
dein zweites problem versteh ich nicht. was für ein Datenfeld? eine normales objekt oder variable oder was? und wem willst du das übergeben? einer instanz? dann würd ich eine setter-Methode in die entsprechende klasse einbauen.


----------



## the_brain (1. Mai 2004)

das datenfeld ist ein String Array und dieses möchte ich einer anderen klasse übergeben, damit es in dieser verwendet werden kann. wie mach ich das genau mit einer setter methode?


----------



## Roar (1. Mai 2004)

```
AndereKlasse andere = new AndereKlasse("abc");
andere.setStringArray(new Sintrg[]{"d","e","f"});
```

die implementierung ist dir überlassen, ich weiß ja nicht was die andere Klasse damit macht, ist ja aber auch egal.


----------



## the_brain (3. Mai 2004)

hallo,

ich hoff ich nerv dich nicht schon und darf dich noch was fragen.

ich hab jetzt folgendes ich hab ein String Array und ein 2 dimensionales Object Array.

Mir fehlt im moment der Plan wie ich das String Arrray dem 2 dimensionalen Object Array zuweisen bzw. casten kann.
Hast du eine Idee?


----------



## Roar (3. Mai 2004)

wie willst du die elemente denn angeordnet haben? immer das nächste string element in dem nächsten Object_[0] ? dann einfach mit ner schleife:


		Code:In die Zwischenablage kopieren


String[] s = {"1","2","3"};
Object[][] o = new Object[s.length][2];
for(int i=0; i<s.length;i++) {
  o[i][0] = s[i];
}

_


----------



## the_brain (3. Mai 2004)

danke, werds gleich mal probieren.

greetz!


----------



## the_brain (3. Mai 2004)

merci,

funktioniert danke!

spiel mich grad dem auslesen der letzenÄnderung herum. das mit der dateigröße funktioniert schon super!

so lese ich die größe aus, aber ich bekomm da irgendwelche ganz dubiose Zahlen, muss man sich dies erst selbst irgendwie formatieren, damit man ein richtiges Datumsformat erhält?

dateiAenderung = datei_.lastModified() // im array datei befinden sich die vorher eingelesenen dateien_


----------



## Roar (3. Mai 2004)

guck doch mal in deinem anderen beitrag, da hab ic hdir die frage shcon beantwortet: http://www.java-forum.org/de/viewtopic.php?t=4179t


----------



## the_brain (3. Mai 2004)

ups sorry, übersehen!

funkt super!!!
danke!!!


----------



## the_brain (4. Mai 2004)

hi,

also nun funtktionierts bei mir super, dankeschön für deine tatkräftige unterstützung.

hätt noch ne frage, kann ich irgendwie den hintergrund der jtable auf weiß setzen?

hab das problem, dass wenn die daten in einem ordner sehr wenig sind und nicht das ganze fenster der JScrollPane ausfüllen ist der hintergrund der jtable weiß und darunter wo keine files mehr sind grau. ist dies der hintergrund der table od. der jscrollpane. od. kommt dies möglicherweise sogar von der jsplitpane, die ja die jscrollpane hält.

hast eine idee wie ich da den hintergrund generell auf weiß setzen kann?


----------



## Roar (4. Mai 2004)

nee, sorry, das hab ich auch noch nicht gemacht. wenn ich was rausfinde sag ichs dir...


----------



## bygones (4. Mai 2004)

falls ichs richtig verstanden hab:
du kannst glaub ich nicht direkt den Hintergrund einer Tabelle ändern, aber über den CellRenderer der Spalten kannst du deren Hintergrund über setBackground() verändern...


----------



## Roar (4. Mai 2004)

dbac, es geht nicht um den hintergrund der Table. es geht darum dass der hintergrund bei der splitpane grau ist, unzwa dort wie die Table (ScrollPane) aufhört..
mit splitppane.setBackground(); gehts leider auch nicht.


----------



## the_brain (4. Mai 2004)

hat sonst vielleicht jemand ne idee wie ich den hintergrund von grau auf weiß ändern könnte?
kann ich vielleicht die scroll table so groß machen, dass diese den grauen bereich abdeckt?


----------

