JList wird angezeigt, JTable (DefaultTableModel) nicht

MarDaiBre

Aktives Mitglied
Hallo,

undzwar möchte ich in meinem Programm übergebene Strings in eine Tabelle speichern und anzeigen lassen. Ich habe das bisher in einer JList (selbstgeschriebene Klasse) gespeichert und es wurde alles wunderbar ausgegeben. Da sich eine Tabelle nun doch besser eignet, möchte ich nun eine Tabelle verwenden.

Ich habe alles so gelassen, wie es auch bisher funktioniert, nur habe ich anstelle der JList-Klasse (GUILIste) eine zweite Klasse (GUITable) geschrieben, welche auch (zumindest sagt es die Konsolenausgabe) funktioniert. Nur wird die Tabelle nicht angezeigt, habe aber keine Ahnung, woran es liegen kann. Ein Fehler wird nicht ausgegeben. Hier mal der Code:

Java:
public GUITable guiListeRisiken = new GUITable();
JScrollPane scrollPaneRisiko = new JScrollPane(guiListeRisiken);

class GUITable extends JTable
{
    Vector<String> columnNames = new Vector();
        Vector<Vector<String>> data = new Vector();
    private DefaultTableModel tabRisiko = new DefaultTableModel(data, columnNames);
        
    public void setElements(Collection risikoList)
    {
        tabRisiko.setNumRows(0);
        
            columnNames.addElement("Risikonummer");
            columnNames.addElement("Verursachernummer");
            columnNames.addElement("Fehlerortnummer");
            columnNames.addElement("Fehlerortbezeichnung");
            columnNames.addElement("Quadrant");
            columnNames.addElement("Fehlerartnummer");
            columnNames.addElement("Fehlerartbezeichnung");
            
        Iterator it = risikoList.iterator();
        while(it.hasNext())
        {
            RisikoInfo k = (RisikoInfo)it.next();
                
            String test = k.getDaten();
            String[] seperated = test.split("\\+");
                
            Vector<String> row = new Vector(5);
                
            row.addElement(seperated[0]);
            row.addElement(seperated[1]);
            row.addElement(seperated[2]);
            row.addElement(seperated[3]);
            row.addElement(seperated[4]);
            row.addElement(seperated[5]);
            row.addElement(seperated[6]);

                        data.addElement(row);
        }
            
        revalidate();
    }

        public GUITable()
    {
        setModel (tabRisiko);
    }
}

class GUIListe extends JList
{
    private DefaultListModel swingListModelRisiko = new DefaultListModel();
        
    public void setElements(Collection risikoList)
    {
        swingListModelRisiko.removeAllElements();
        Iterator it = risikoList.iterator();
        while(it.hasNext())
        {
            RisikoInfo k = (RisikoInfo)it.next();
            swingListModelRisiko.addElement (k.getDaten());
        }
    }

        public GUIListe()
    {
        setModel (swingListModelRisiko);
    }
}

/**
* Der Konstruktor der Klasse KlausurFrame.
* 
*/
public LadeGUI (Risiko model)
{
    this.prg = model; // Model uebernehmen.
    beschriften(); // Dialogfenster-Titel beschriften
    initFromModelRisiko(); // GUI-Elemente aus model initialisieren.
    layoutElements(); // GUI-Elemente positionieren.
}

private void initFromModelRisiko()
{
    guiListeRisiken.setElements (prg.getRisiko());
}

Später wird halt das JScrollPane scrollPaneRisiko auf ein Panel ausgegeben, leider nur wenn ich public GUITable guiListeRisiken = new GUITable(); in public GUIListe guiListeRisiken = new GUIListe(); ändere. Hat da jmd ne Idee?

Ich bedanke mich schonmal im Voraus.

Viele Grüße
 
Zuletzt bearbeitet von einem Moderator:

FXL

Mitglied
Hi,

ich verstehe leider nicht ganz dein Problem, bzw. was es genau ist.

- werden die Daten in deiner JTable nicht angezeigt?
oder
- wird die JTable nicht in deinem Frame dargestellt - also ist sie sichtbar?

Wenn es das Zweite ist, dann fehlt noch etwas Quellcode - der in dem du die JTable erzeugst und dem Pane zuweist.

Die Zuweisung wird prinzipiell mittels

Java:
jScrollPane.setViewPoerView(new GUITable())

durchgeführt!

Gruß
 

MarDaiBre

Aktives Mitglied
Hallo,

danke für deine Antwort. Ich habe gerade nochmal detaillierter geschaut. Nun habe ich festgestellt, dass er in der While-Schleife den String richtig trennt und speichert. Nur die Tabelle wird nicht auf dem Frame angezeigt. Bei der JList macht er es ohne Probleme.
 
Zuletzt bearbeitet:

Joose

Top Contributor
Nur die Tabelle wird nicht auf dem Frame angezeigt. Bei der JList macht er es ohne Probleme.

Dann solltest du uns auch entsprechenden Code bitte geben.
An deinem Code im Anfangspost ist nur ersichtlich das du eine Methode aufruft die angeblich die GUI Element positioniert. Aber ohne Code können wir nicht sagen warum sie es anscheinend doch nicht tut :)
 

MarDaiBre

Aktives Mitglied
Das stimmt :) Hier einmal der Code.

Java:
class CenterPanel extends JPanel
{        
    public CenterPanel()
    {
        setLayout (new GridBagLayout());
        GridBagConstraints constraint = new GridBagConstraints();
            
        constraint.gridx = 0;
        constraint.gridy = 0;
        constraint.insets = new Insets (elementAbstand,0,0,0);
        constraint.fill = GridBagConstraints.HORIZONTAL;
        add(scrollPaneRisiko, constraint);
        scrollPaneRisiko.setPreferredSize(new Dimension(listeBreite, listeHoehe));
    }
}

private void layoutElements()
{
    setLayout(new BorderLayout()); //Layout-Manager definieren.
    add(new NorthPanel(), BorderLayout.NORTH);
    add(new CenterPanel(), BorderLayout.CENTER);
    add(new SouthPanel(), BorderLayout.SOUTH);
}

Mich wundert es nur, warum GUIListe mit einem DefaultListModel angezeigt wird, aber GUITable mit DefaultTableModel nicht. Echt zum Verzweifeln.
 
Zuletzt bearbeitet von einem Moderator:

MarDaiBre

Aktives Mitglied
Hey, ich habe nun eine halbfertige Lösung:
Meine Klasse GUITable sieht nun wiefolgt aus:
Java:
class GUITable extends JTable
{
    private DefaultTableModel swingTabelleModelRisiko = new DefaultTableModel();
    
    public void setElements(Collection risikoList)
    {
        swingTabelleModelRisiko.setNumRows(0);
                                
            swingTabelleModelRisiko.addColumn("Risikonummer");
            swingTabelleModelRisiko.addColumn("Verursachernummer");
            swingTabelleModelRisiko.addColumn("Fehlerortnummer");
            swingTabelleModelRisiko.addColumn("Fehlerortbezeichnung");
            swingTabelleModelRisiko.addColumn("Quadrant");
            swingTabelleModelRisiko.addColumn("Fehlerartnummer");
            swingTabelleModelRisiko.addColumn("Fehlerartbezeichnung");

        Iterator it = risikoList.iterator();
        while(it.hasNext())
        {
            RisikoInfo r = (RisikoInfo)it.next();
            String risikoSet = r.getDaten();
            String[] setSplit = risikoSet.split("\\+");
                
            Vector<String> row = new Vector(5);
            row.addElement(setSplit[0]);
            row.addElement(setSplit[1]);
            row.addElement(setSplit[2]);
            row.addElement(setSplit[3]);
            row.addElement(setSplit[4]);
            row.addElement(setSplit[5]);
            row.addElement(setSplit[6]);
                
            swingTabelleModelRisiko.addRow(row);                
        }
    
                public GUITable()
        {
            setModel(swingTabelleModelRisiko);
            addMouseListener (new ListClickHandler());
        }
}

Nun bekomme ich die Tabelle angezeigt. Bevor ich die Daten abrufe, zeigt er mir die leere Tabelle mit den Spaltenüberschriften an (Bild links). Wenn ich die Daten nun abrufe, bekomme ich zwar die korrekte Anzahl an Zeilen, aber er erweitert die Spalten bis ins Unendliche (Bild rechts). Hat jmd von euch einen Tipp? Ich probiere gerade aus, woran es liegen kann...

Anhang anzeigen 6932

}
 
Zuletzt bearbeitet von einem Moderator:

MarDaiBre

Aktives Mitglied
YAAAAAAAAAAAAAY.

Ich habe die Spaltenüberschriften
Java:
swingTabelleModelRisiko.addColumn("Risikonummer");
swingTabelleModelRisiko.addColumn("Verursachernummer");
swingTabelleModelRisiko.addColumn("Fehlerortnummer");
swingTabelleModelRisiko.addColumn("Fehlerortbezeichnung");
swingTabelleModelRisiko.addColumn("Quadrant");
swingTabelleModelRisiko.addColumn("Fehlerartnummer");
swingTabelleModelRisiko.addColumn("Fehlerartbezeichnung");

in eine eigene Methode gepackt, welche in
Java:
public GUITable()
{
            setModel(swingTabelleModelRisiko);
            addMouseListener (new ListClickHandler());
}

vor setModel(swingTabelleModelRisiko); aufgerufen wird. Endlich geht es. Danke nochmals!
 
Zuletzt bearbeitet von einem Moderator:

Harry Kane

Top Contributor
Ich würde dringend davon abraten, JTable und JLIst auf die von dir beschriebene Weise zu erweitern. Um von dir gewünschte Daten anzeigen zu lassen, kannst du einer normalen JTable/JList einfach ein passendes Datenmodell (ListModel/TableModel) verpassen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
T Swing WindowBuilder: JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
S Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
K JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
R AWT JList wird nur zufällig auf der GUI aktualisiert AWT, Swing, JavaFX & SWT 5
G JList wird in einem Applet nur teilweise aktualisiert AWT, Swing, JavaFX & SWT 12
Tom299 JList ListCellRenderer wird überschrieben AWT, Swing, JavaFX & SWT 8
C JList, valueChanged wird doppelt ausgeführt? <<closed AWT, Swing, JavaFX & SWT 2
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
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
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
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
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
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
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
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
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
B JList zeigt Elemente nicht an AWT, Swing, JavaFX & SWT 3
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

Ähnliche Java Themen

Neue Themen


Oben