File-Objekte an JList übergeben und abrufen

crossrider

Mitglied
Hallo alle zusammen,

ich stehe gerade vor dem Problem, dass ich ein Array aus File-Objekten in einer JList speichern will und diese danach auch wieder zur weiteren Verarbeitung daraus abrufen will. An Letzterem scheitere ich jedoch: Zwar kann ich die Files anscheinend ohne Probleme an die JList übergeben, aber ich weiß nicht wie ich sie wieder herausbekomme :) Das File-Array kommt von einem FileChooser und wird mit der folgenden Methode in die JList eingefügt:

Java:
model = new DefaultListModel();
datlist = new JList(model);

public void setListContent(File[] dateien) {
				
		File[] files = dateien;
				for (File f : files) {
					ListObject lo = new ListObject();
					lo.setFile(f);
					model.addElement(lo);
					
				}
			}

Die Definition für das ListObject ist in einer eigenen Klasse gespeichert, aber es gelingt mir nicht, auf die dort festgelegten Methoden wie getFile() oder getFiles() zuzugreifen.

Java:
public class ListObject {
	public File file = null;
	public File[] files = null;

	public File getFile() {
		return file;
	}
	
	public File[] getFiles() {
		return files;
	}

	public void setFile(File file) {
		this.file = file;
	}

	public String toString() {
		return file.getName();
	}
}

Habt ihr einen Tipp für mich? Normalerweise bekomme ich die Inhalte der JList über jlist.getModel().getElementAt(i) - hier will ich aber an die File-Objekte, nicht an die Strings ran. Wie mache ich das? Danke schonmal für eure Hilfe!
 
S

SlaterB

Gast
das sieht erstmal so aus als würden schöne ListObjects in der Liste stehen,
was geht denn konkret schief, klappt der Cast auf ListObject nicht?

poste doch deinen Code von der GUI und vom Abfragen eines Elementes,

wobei ein File letztlich nur ein Miniwrapper um einen String ist, könntest du auch neu erstellen
 

crossrider

Mitglied
Genau, ich versuch von Object zu File zu konvertieren, wobei der Cast scheitert.

Hier mein Versuch:
Java:
public File[] gewaehlte_dateien(JList liste) {

		JList filelist = liste;
		
		File[] files = new File[filelist.getModel().getSize()];
		for (int i=0; i<filelist.getModel().getSize(); i++) {
			File datei = ((File) filelist.getModel().getElementAt(i));
		    files[i] = datei;

		    //Object item = filelist.getModel().getElementAt(i);
		}

Und hier das Ergebnis:

Java:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: ListObject cannot be cast to java.io.File
	at JPanel_b_center.gewaehlte_dateien(JPanel_b_center.java:53)
	at JPanel_b_center.actionPerformed(JPanel_b_center.java:136)

Grundsätzlich stelle ich mir aber die Frage, wie ich überhaupt auf meine in ListObject definierten Methoden zugreifen kann. Egal was ich versuche: nie bekomme ich getFile() oder getFiles() angezeigt wenn ich über jlist.getModel() gehe. Wie komme ich also auf die ListObjects von meiner jlist aus??
 
S

SlaterB

Gast
die Fehlermeldung sagt dir doch, dass du da ListObject aus der Liste holst?!
die musst du auf ListObject casten, dann kannst du auch entsprechende Methoden aufrufen,
gleich auf File casten geht nicht

leider erst zu spät genauer geschaut als ich selber die Fehlermeldung auch schon hatte,
so sieht übrigens ein vollständiges Testprogramm aus:

Java:
public class TestGUI extends JFrame {
    DefaultListModel model;
    JList datlist;

    public TestGUI()  throws Exception {

        model = new DefaultListModel();
        datlist = new JList(model);

        add(datlist);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 300);
        setVisible(true);

        Thread.sleep(1000);
        setListContent(new File[] {new File("A"), new File("B"), new File("C"),});

        System.out.println(Arrays.toString(gewaehlte_dateien(datlist)));
    }

    public void setListContent(File[] dateien) {
        File[] files = dateien;
        for (File f : files)   {
            ListObject lo = new ListObject();
            lo.setFile(f);
            model.addElement(lo);
        }
    }

    public File[] gewaehlte_dateien(JList liste) {
        JList filelist = liste;
        File[] files = new File[filelist.getModel().getSize()];
        for (int i = 0; i < filelist.getModel().getSize(); i++)  {
            File datei = ((File)filelist.getModel().getElementAt(i));
            files[i] = datei;

            // Object item = filelist.getModel().getElementAt(i);
        }
        return files;
    }

    public static void main(String[] args)  throws Exception {
        new TestGUI();
    }
}


class ListObject {
    public File file = null;
    public File[] files = null;

    public File getFile() {
        return file;
    }

    public File[] getFiles()  {
        return files;
    }

    public void setFile(File file)  {
        this.file = file;
    }

    public String toString()  {
        return file.getName();
    }
}
kopieren, laufen lassen, selber Fehler vorhanden zum Testen
 

crossrider

Mitglied
Vielen Dank SlaterB, ich habe die Methode nun entsprechend angepasst. Das war mal wieder einer meiner Anfängerfehler. Jetzt stehe ich aber wieder auf dem Schlauch: Wenn ich meine Methode durchführe, dann sehe ich dass er in der for-Schleife alle Dateien korrekt verarbeitet. Mein return-Statement (dateien) bleibt aber weiterhin null. Habe ich irgendetwas vergessen einzufügen?

Java:
public File[] gewaehlte_dateien(JList liste) {

		JList filelist = liste;
		
		File[] files = new File[filelist.getModel().getSize()];
		for (int i=0; i<filelist.getModel().getSize(); i++) {
			ListObject datei = ((ListObject) filelist.getModel().getElementAt(i));
			files[i] = datei.getFile();
	    
		}
		
			
		return dateien;
	}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Ø Ein FXML-File mehrfach einfügen AWT, Swing, JavaFX & SWT 6
MiMa File Dateien im ListView als Name anzeigen? AWT, Swing, JavaFX & SWT 6
Rubberduck JavaFX Runnable jar file doesn't work AWT, Swing, JavaFX & SWT 2
F Output Stream / File Dateien / Speichern AWT, Swing, JavaFX & SWT 13
R FXML File kann nicht hinzugefügt werden! AWT, Swing, JavaFX & SWT 2
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
B JavaFx TreeView mit file system AWT, Swing, JavaFX & SWT 1
J File Sucher AWT, Swing, JavaFX & SWT 4
L JavaFX TreeView mit File Objects AWT, Swing, JavaFX & SWT 0
D Swing JTable mit Inhalt aus XML-File AWT, Swing, JavaFX & SWT 3
Z JAVAFX Stage über Controller weitergeben um css-file zu laden AWT, Swing, JavaFX & SWT 4
M JFX8 Mixed 2D and 3D, Scene Subscene incorrect drawing 3ds-file AWT, Swing, JavaFX & SWT 6
R JavaFX Stage.close() funktioniert nicht im jar-File AWT, Swing, JavaFX & SWT 2
B JAXB , Unmarshal XML File AWT, Swing, JavaFX & SWT 3
T FileFilter: class File wird nicht gefunden AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Desktop.open(file) hängt AWT, Swing, JavaFX & SWT 4
J SWT jar-File relativ groß AWT, Swing, JavaFX & SWT 5
M JFreeChart in ein File schreiben (bzw. JFrame in ein File Schreiben) AWT, Swing, JavaFX & SWT 2
GUI-Programmer InputStream zu File kopieren - JPrograssbar anzeigen AWT, Swing, JavaFX & SWT 10
Z Component für File-Browser ähnliche Oberfläche AWT, Swing, JavaFX & SWT 6
T SWT Window Builder Pro File Dialog anzeigen AWT, Swing, JavaFX & SWT 10
Z Swing Mittels GUI Werte aus Property-File ändern AWT, Swing, JavaFX & SWT 5
S JTree aus List<File> erstellen AWT, Swing, JavaFX & SWT 8
L Filechooser File Öffnen AWT, Swing, JavaFX & SWT 4
I Swing JTree aus ArrayList<File> erzeugen AWT, Swing, JavaFX & SWT 15
E Swing File lesen und in JEditorpane AWT, Swing, JavaFX & SWT 2
N File.setlastmodified() AWT, Swing, JavaFX & SWT 5
J Progressbar aktualisierung nach file übergabe AWT, Swing, JavaFX & SWT 7
T Dynamic JTree: File System Problem AWT, Swing, JavaFX & SWT 2
freakysheep mit jtree config file erzeugen AWT, Swing, JavaFX & SWT 2
M File-Chooser Problem (2 X Mausklick öffnen) AWT, Swing, JavaFX & SWT 11
N JFilechooser File auslesen AWT, Swing, JavaFX & SWT 10
R Jar File AWT, Swing, JavaFX & SWT 2
M File.listFiles() mit dem FileFilter von JFileChooser? AWT, Swing, JavaFX & SWT 14
I Dateiendung aus File AWT, Swing, JavaFX & SWT 9
A Probleme mit einer JOptionPane in einem jar-File AWT, Swing, JavaFX & SWT 14
G avi-Datei mit Desktop.getDesktop().open(File) öffnen AWT, Swing, JavaFX & SWT 4
DeeDee0815 JEditorPane + HTML + <img src=file> + JAR = FALSE AWT, Swing, JavaFX & SWT 3
E GUI-Elemente aus txt- oder xml-File erstellen? AWT, Swing, JavaFX & SWT 5
F File Chooser - nur PDFs AWT, Swing, JavaFX & SWT 2
C File Explorer simulieren AWT, Swing, JavaFX & SWT 6
B Problem mit ImageIcons in einem Jar-File AWT, Swing, JavaFX & SWT 7
M Windows file icons in Java verwenden AWT, Swing, JavaFX & SWT 2
N JFileChooser => Exc. in thread "Basic L&F File L AWT, Swing, JavaFX & SWT 11
P SkinLF aus jar-File AWT, Swing, JavaFX & SWT 5
C getIcon für ein File das es nicht gibt? AWT, Swing, JavaFX & SWT 2
U externes .jar file einbinden [jdic] AWT, Swing, JavaFX & SWT 16
Z jar-File mit SWT - Exception AWT, Swing, JavaFX & SWT 4
M Ausführbares Jar File AWT, Swing, JavaFX & SWT 12
N File von HDD in JEditorPane laden? AWT, Swing, JavaFX & SWT 2
V SWT Programm als jar-File starten AWT, Swing, JavaFX & SWT 5
P XML-File in Java-App darstellen - wie im Internet Explorer AWT, Swing, JavaFX & SWT 2
D File verschieben. In java möglich? AWT, Swing, JavaFX & SWT 3
J ganz dringend File Chooser: extensions! AWT, Swing, JavaFX & SWT 6
N Graphics Objekte scalen mit Veränderung des Bildschirms AWT, Swing, JavaFX & SWT 19
berserkerdq2 Skalieren sich javafx objekte automatisch auf die Bildschirmgröße AWT, Swing, JavaFX & SWT 6
Redeason Objekte in meiner GUI verschieben AWT, Swing, JavaFX & SWT 1
_user_q Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
_user_q JavaFX Wie kann ich alle Objekte außer eins deaktivieren (das Gleiche mit BoxBlur)? AWT, Swing, JavaFX & SWT 11
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
J Objekte von 2 GUIs zusammenfassen AWT, Swing, JavaFX & SWT 2
T Swing Objekte in Liste AWT, Swing, JavaFX & SWT 2
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
C JList: Bestimmte Objekte ausschließen AWT, Swing, JavaFX & SWT 1
MaxG. Swing Dynamisch grafische Objekte erzeugen AWT, Swing, JavaFX & SWT 12
Y Objekte grafisch darstellen ohne GMF - Composite auf Canvas? AWT, Swing, JavaFX & SWT 2
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
L Dynamischer Aufbau einer Tabelle über Objekte AWT, Swing, JavaFX & SWT 2
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
JG12111989 mehrere Polyline-Objekte zeichnen AWT, Swing, JavaFX & SWT 3
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
T Rectangle Transparent und darunter liegende Objekte Bedienbar AWT, Swing, JavaFX & SWT 0
J Swing/AWT | Dynamisch erzeugte Objekte ansprechen AWT, Swing, JavaFX & SWT 1
Z Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern AWT, Swing, JavaFX & SWT 15
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
I Objekte aus contentPane löschen funktioniert nicht AWT, Swing, JavaFX & SWT 3
C Swing Java Objekte AWT, Swing, JavaFX & SWT 4
J JavaFX Eigene ListCell Problem(Objekte werden doppelt angezeigt) AWT, Swing, JavaFX & SWT 1
N Swing Alle Objekte anzeigen auch bei JPanel-Überlappung AWT, Swing, JavaFX & SWT 6
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
A Drag and Drop eigener Objekte AWT, Swing, JavaFX & SWT 7
M SWT Durchlagen der SWT Objekte mit Tabulator AWT, Swing, JavaFX & SWT 5
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
S Swing Kopie eines JPanels inkl. aller objekte darin erstellen AWT, Swing, JavaFX & SWT 5
D Swing Objekte bewegen mit MouseMotionListener AWT, Swing, JavaFX & SWT 4
P Objekte anzeigen und verschieben - wie? AWT, Swing, JavaFX & SWT 6
F Swing ArrayList in JList anzeigen und Objekte auswählen AWT, Swing, JavaFX & SWT 2
G Objekte in und aus einer JTable laden AWT, Swing, JavaFX & SWT 5
propra Mehrere Objekte gleichzeitig verschieben AWT, Swing, JavaFX & SWT 7
propra Objekte auf Zeichenfläche verschieben AWT, Swing, JavaFX & SWT 2
propra 2D-Grafik Beliebig viele Objekte auf einer Zeichenfläche zeichnen AWT, Swing, JavaFX & SWT 15
T JList und Objekte AWT, Swing, JavaFX & SWT 7
M Objekte in JPanel bewegen AWT, Swing, JavaFX & SWT 4
E Objekte zu Path2D zusammensetzen AWT, Swing, JavaFX & SWT 2
M verschieben der Objekte in JPanel nur stückchenweise möglich AWT, Swing, JavaFX & SWT 14
4 AWT bestimmte Objekte zeichnen und löschen AWT, Swing, JavaFX & SWT 8
R komplette Objekte in JTable einfügen AWT, Swing, JavaFX & SWT 18

Ähnliche Java Themen

Neue Themen


Oben