JList zeigt die Daten aus dem Array nicht an!

Hades

Mitglied
Hallo zusammen,

komme gerade nicht mehr weiter. Das Programm dient dazu Bilddateien auszuwählen diese einzulesen und anschließend umzubenennen. Dabei will ich den ausgewählten Inhalt auf einer JList anzeigen lassen.
Nur leider komme ich gerade nicht mehr weiter.

Das Frame:
Java:
public class Frame extends JFrame {
    
    Container c;

    MenuBar menu = new MenuBar();
    Buttons button = new Buttons();
    List dataList = new List();

    
    public Frame() {
        
        final Toolkit kit = Toolkit.getDefaultToolkit();
        final Dimension screenSize = kit.getScreenSize();
        
        final int screenHeight = screenSize.height;
        final int screenWidth = screenSize.width;
        
        setSize(screenWidth /2, screenHeight /2);
        setLocation(screenWidth / 4, screenHeight / 4);
        
        setTitle("Softwareprojekt");
        
        c = getContentPane();
        c.setLayout(new BorderLayout());

        
        add(button, BorderLayout.SOUTH);


        add(dataList.dataList, BorderLayout.CENTER);
        dataList.dataList.setBorder(new EtchedBorder(Color.black, Color.black));
        
        setJMenuBar(menu.menuBar);
        
    }
}

Das File-Array:
Java:
public class FileArray {
    
    protected static File[] fileArray;
    protected String datName;
    
    List list = new List();
    
    public void setFileArray(File[] fA) {
        fileArray = fA;
    }

    public File[] getFileArray() {
        return fileArray;
    }
    
    public void showContent() {
        for(int i = 0; i < fileArray.length; i++) {
            list.data.addElement(fileArray[i]);
            list.dataList.updateUI();
        }
    }
}

Die Tabelle:
Java:
public class List {

    final DefaultListModel data;
    JList dataList;
    JScrollPane scrollList;
    
    
    public List() {
        
        data = new DefaultListModel();
        dataList = new JList(data);
        scrollList = new JScrollPane(dataList);
        
    }
}

Würde mich sehr über euere Hilfe freuen.
Vielen Dank schon ma im Vorraus.
 

Michael...

Top Contributor
Die JList wird ja nirgends gefüllt. Warum eine eigene Klasse List? Verwende in der Klasse Frame doch direkt JList. Ansonsten hilft vielleicht mal ein Blick in die Grundlagen der objektorientierten Programmierung.
 

Hades

Mitglied
In der Methode showContent wird diese doch gefüllt, habe ich gedacht.
Da wird doch durch addElement die einzelnen Inhalte übergeben oder irre ich mich?
 
S

SlaterB

Gast
showContent wird nie aufgerufen, die Klasse FileArray nirgendwo benutzt?
du musst schon etwas vollständiger die Vorgänge aufzeigen, am besten in einem kleinen lauffähigen Programm
 

Michael...

Top Contributor
Selbst wenn sie da befüllt werden würde: Wo wird die Methode aufgerufen, wo wird das Array befüllt?

Bei dem in der Klasse FileArray erzeugten List-Objekt handelt es sich im Übrigen nicht um das selbe Objekt wie in der Klasse Frame.
 

Hades

Mitglied
Die Methode wird über einen Button aufgerufen.

Und hier wird das Array gefüllt.
Java:
public class FileChooser implements ActionListener{
    
    JFileChooser fileChooser = new JFileChooser();
    File dir;
    FileArray fA = new FileArray();
    
    FileFilter filter = new FileExtension("JPG, JPEG", new String[] { "JPG", "JPEG"});
    FilenameFilter fileName = new FilenameFilter() {
        
        @Override
        public boolean accept(File dir, String name) {
            // TODO Auto-generated method stub
            return ((name.endsWith(".jpg")) || (name.endsWith(".jpeg")));
        }
    };    
    
    public void actionPerformed(ActionEvent e) {
        fileChooser.setCurrentDirectory(new File("."));
        //fileChooser.setFileFilter(filter);
        fileChooser.setMultiSelectionEnabled(true);
        fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        if(fileChooser.showDialog(null, "Bitte auswählen") == JFileChooser.APPROVE_OPTION) {
   
                   dir = fileChooser.getSelectedFile();
                        
                        if(dir.isDirectory()) {
                            fA.setFileArray(dir.listFiles(fileName));   
                        }
                        else if(dir.isFile()) {
                            fA.setFileArray(fileChooser.getSelectedFiles());
                        }            
        }    
    }    
}
 

Hades

Mitglied
Hier wird die Methode aufgerufen.

Java:
public class Buttons extends JPanel implements ActionListener{
    
    FileArray file = new FileArray();
    List datenList = new List();
    
    JButton butnRename, butnShow, but2, but3;
    JPanel butPanel;
    
    public Buttons() {        
        
        butnRename = new JButton("Umbenennen");
        butnShow = new JButton("Anzeigen");

        
        
        
        
        add(butnRename);
        add(butnShow);

        
        butnRename.addActionListener(this);
        butnShow.addActionListener(this);
        
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        String action = e.getActionCommand();
        if(action == "Umbenennen") {
            
        }
        if(action == "Anzeigen") {
            file.showContent();
        }
    }
}
 

Michael...

Top Contributor
Mir scheint Dir ist der Umgang mit Objekten bzw. deren Verwendung in mehreren Klassen nicht ganz klar. Du erzeugst in unterschiedlichen Klassen Objekte von List und FileArray, die nichts miteinander zu tun haben, ausser dass es sich um Objekte des selben Typs handelt.
 

JensArpe

Mitglied
Zuerst mal alle FileArray und Lists aus allem ausser Frame löschen.. dann
z.B. kopierst du mal alles aus FileArray in List (natürlich ohne die List)
danach verpasst du der Einfachheit halber, deiner Frame Klasse ne getter und setter Methode für die List. Und dann rufst du in deinen Buttons nur die getter/setter auf
 

Michael...

Top Contributor
ja, das kann sein.
Aber wie gehe ich dann vor?
Deine Aufteilung des Codes auf die einzelnen Klassen ist so nicht unbedingt sinnvoll.

Hier eine Demo zum Arbeiten mit einem gemeinsamen Objekt (in dem Fall JList).
IDabei habe ich den Code künstlich auf zwei Klassen aufgeteilt - den Code also nicht als Programmiervorlage verwenden!!!
Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;

public class FileChooseListDemo extends JFrame {
	
	private DirectorySelector selector;
	
	public FileChooseListDemo() {
		JList list = new JList();
		JButton button = new JButton("Open Directory");
		this.getContentPane().add(new JScrollPane(list), BorderLayout.CENTER);
		this.getContentPane().add(button, BorderLayout.SOUTH);
		
		/*******************
		 * Hier wird bei der Erzeugung eines DirectorySelector Objekts
		 * die Referenz auf die JList an dieses uebergeben.
		 * Dadurch koennen das FileChooseListDemo Objekt und dasDirectorySelector Objekt
		 * gemeinsam mit der selben JList arbeiten.
		********************/
		selector = new DirectorySelector(list);
		
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				selector.selectDirectory();
			}
		});
	}
	
	class DirectorySelector {
		private JFileChooser fileChooser;
		private JList list;
		
		public DirectorySelector(JList list) {
			this.list = list;
			fileChooser = new JFileChooser();
			fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
		}
		
		public void selectDirectory() {
			DefaultListModel model = new DefaultListModel();
			
			int retValue = fileChooser.showOpenDialog(list);
			
			if (retValue==JFileChooser.APPROVE_OPTION) {
				File dir = fileChooser.getSelectedFile();
				for(File file : dir.listFiles())
					model.addElement(file);
			}
			list.setModel(model);
		}
	}
	
	public static void main(String[] args) {
		JFrame frame = new FileChooseListDemo();
		frame.setBounds(0, 0, 500, 300);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
B JList zeigt Elemente nicht an AWT, Swing, JavaFX & SWT 3
M JList zeigt nicht alle Elemente AWT, Swing, JavaFX & SWT 4
Icewind Jlist zeigt neue elemente im model nicht sofort an AWT, Swing, JavaFX & SWT 3
B Jlist füllen AWT, Swing, JavaFX & SWT 4
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
BananenBrötchen Swing Arraylist in jList anzeigen AWT, Swing, JavaFX & SWT 6
J Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
A Swing JList zu JTree AWT, Swing, JavaFX & SWT 11
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7
cezary Choice, JComboBox oder JList AWT, Swing, JavaFX & SWT 5
J JList scrollen AWT, Swing, JavaFX & SWT 3
Neumi5694 Swing JList - Klick abfangen AWT, Swing, JavaFX & SWT 3
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
M Swing JList Auswahl-GUI-Konzept AWT, Swing, JavaFX & SWT 9
C JList: Bestimmte Objekte ausschließen AWT, Swing, JavaFX & SWT 1
F JList aktualisiert nicht AWT, Swing, JavaFX & SWT 24
F JList auffüllen aus Array von Instanzen AWT, Swing, JavaFX & SWT 4
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
F JList bei Windowbuilder AWT, Swing, JavaFX & SWT 8
P JList erstellen AWT, Swing, JavaFX & SWT 4
G DefaultListModel für JList AWT, Swing, JavaFX & SWT 2
P Einer JList mit eigenem ListModel einen Eintrag hinzfügen AWT, Swing, JavaFX & SWT 5
P Übergeben von ListModel an nichtparametrisierte JList AWT, Swing, JavaFX & SWT 8
M Ein Element in mehreren JList selektieren AWT, Swing, JavaFX & SWT 5
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
O Swing JList beim Klicken in der GUI erstellen AWT, Swing, JavaFX & SWT 6
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
T Generische Klasse in JList über DefaultListModel AWT, Swing, JavaFX & SWT 1
T Swing WindowBuilder: JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
C Hilfe bei JSpinner und JList AWT, Swing, JavaFX & SWT 1
D Swing ArrayList in Jlist/ List oder Array in JList/List AWT, Swing, JavaFX & SWT 5
S JList ist leer, aber DefaultListModel hat die Daten? AWT, Swing, JavaFX & SWT 9
M JList wird angezeigt, JTable (DefaultTableModel) nicht AWT, Swing, JavaFX & SWT 7
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
Q JList Update Problem AWT, Swing, JavaFX & SWT 1
W Sichtbarer Bereich JScrollPane vs. JList AWT, Swing, JavaFX & SWT 3
N AWT Markierte Zeile jList aus mySQL DB löschen AWT, Swing, JavaFX & SWT 2
S JList repaint AWT, Swing, JavaFX & SWT 1
F Swing JTextField in JList (Funktion beibehalten) AWT, Swing, JavaFX & SWT 2
H JList AWT, Swing, JavaFX & SWT 5
B Swing Bild von Webseite herunterladen, diese dann in JList anzeigen. AWT, Swing, JavaFX & SWT 1
B Swing Dynamische JList mit Bildern AWT, Swing, JavaFX & SWT 4
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
S JList Index finden AWT, Swing, JavaFX & SWT 6
3 Swing JList-Inhalt als verschlüsselte Datei schreiben und lesen AWT, Swing, JavaFX & SWT 1
N JComponenten in JList oder doch anders? AWT, Swing, JavaFX & SWT 0
S Swing JList, ArrayList + DefaultModel AWT, Swing, JavaFX & SWT 5
B Tabelleneinträge in JList anzeigen AWT, Swing, JavaFX & SWT 5
P JList/JScroolPane Text verschieben und text wrappen AWT, Swing, JavaFX & SWT 3
D Swing JList keine Selektionsänderung bei "dragged-Maus" AWT, Swing, JavaFX & SWT 4
M JList Model filtern AWT, Swing, JavaFX & SWT 4
K Swing JList - Element richtig hinzufügen AWT, Swing, JavaFX & SWT 4
T Swing Elemente der JList überlappend darstellen AWT, Swing, JavaFX & SWT 5
P Swing JList mit Objekten - Name anzeigen AWT, Swing, JavaFX & SWT 5
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
K Mehrfachselektierungen in einer JList AWT, Swing, JavaFX & SWT 6
L Swing Component alignment innerhalb einer JList AWT, Swing, JavaFX & SWT 3
M Swing JList Listener AWT, Swing, JavaFX & SWT 20
M Accelerator zu JMenuItem des JPopupMenu einer JList AWT, Swing, JavaFX & SWT 2
S Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Element aus JList eines JFileChooser entfernen AWT, Swing, JavaFX & SWT 3
E selektierter Datensatz in JList als String Datentyp AWT, Swing, JavaFX & SWT 23
E selektiertes Element aus JList zurückgeben AWT, Swing, JavaFX & SWT 7
E JList /DefaultListModel mit Datenbank verbinden AWT, Swing, JavaFX & SWT 10
L SQL & Jtable o. JList AWT, Swing, JavaFX & SWT 5
K Swing JList und veränderte CellRenderer AWT, Swing, JavaFX & SWT 8
B JList + ListCellRenderer AWT, Swing, JavaFX & SWT 5
B JList -> Disabled AWT, Swing, JavaFX & SWT 6
J JList, Anzeige aktualisieren AWT, Swing, JavaFX & SWT 7
I Jlist isselectionEmpty AWT, Swing, JavaFX & SWT 4
I Jlist dynamisch aus Datenbank füllen AWT, Swing, JavaFX & SWT 14
R Swing unbegrenzte Anzahl vonEinträgen in JList AWT, Swing, JavaFX & SWT 2
MiMa Dateien aus Ordner in einer JList Ausgeben AWT, Swing, JavaFX & SWT 32
P Elemente einer JList ausgeben AWT, Swing, JavaFX & SWT 11
M JList mit 2-zeiligen Objekten füllen AWT, Swing, JavaFX & SWT 7
S JList mit Einträgen versehen schlägt fehl AWT, Swing, JavaFX & SWT 4
F Swing ArrayList in JList anzeigen und Objekte auswählen AWT, Swing, JavaFX & SWT 2
S Fragen zu JList AWT, Swing, JavaFX & SWT 3
B Aktualisierung einer JList AWT, Swing, JavaFX & SWT 5
W JList valueChanges weiterleiten? AWT, Swing, JavaFX & SWT 14
D JButton-Click in JList mit Panels (auf dem der Button ist) AWT, Swing, JavaFX & SWT 6
E Jlist nur mit Klasse? AWT, Swing, JavaFX & SWT 5
D Swing JList <-> AdapterModel <-> Model AWT, Swing, JavaFX & SWT 4
1 JList - Elemente mit rechter Maustaste wählen AWT, Swing, JavaFX & SWT 6
M JList mit DefaultListModel und listener AWT, Swing, JavaFX & SWT 4
B JList nach dem Rendern sortieren AWT, Swing, JavaFX & SWT 3
T Wie ist das "Lookup-Verhalten" von JList, JCombobox änderbar? AWT, Swing, JavaFX & SWT 4
D JList items voneinander trennen AWT, Swing, JavaFX & SWT 10
E Keine Ausgabe von JList bei drücken von Button auf die Konsole AWT, Swing, JavaFX & SWT 7
M gleiches Element in JList mehrmals hintereinander auswählen AWT, Swing, JavaFX & SWT 6
T JList und Objekte AWT, Swing, JavaFX & SWT 7
M Swing JList Item in andere JList während Ausführung AWT, Swing, JavaFX & SWT 4
V JList filtern AWT, Swing, JavaFX & SWT 6
GianaSisters jList nur einmal ein Element anklicken AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben