Keine Anzeige in JList

Status
Nicht offen für weitere Antworten.

Taste

Bekanntes Mitglied
Hallo, ich habe hier ein kleines (wahrscheinlich recht blödes) Problem mit einer JList, finde aber den Fehler einfach nicht.

Code:
DefaultListModel model = new DefaultListModel(); 
			jThemenListe = new JList( model );
			jThemenListe.setBackground(java.awt.SystemColor.info);
			JScrollPane jScrollingList = new JScrollPane(jThemenListe);
			jScrollingList.setBounds(new java.awt.Rectangle(20,550,976,140));
			jScrollingList.setBackground(java.awt.SystemColor.info);
			
			jContentPane.add(jScrollingList);

...

Code:
for (int i=0; i<derby.listeT.size(); i++){
				model.addElement(((Data) derby.listeT.get(i))
						.getDeutsch());
				System.out.println(((Data) derby.listeT.get(i))
						.getDeutsch());
				model.addElement("Test");
			}

Die Zeile "model.addElement(((Data)..." funktioniert nicht. Ich bekomme in der GUI nichts angezeigt. Die Konsolenausgabe darunter funktioniert wunderbar, also liegt es weder an der Schleife, noch am Inhalt der Liste, denke ich. Wenn ich "model.addElement("Test")" aus der Schleife herausnehme funktioniert dies, in der Schleife aber ebenfalls keine Anzeige.

Wo ist mein Fehler?

Gruß Taste
 

Taste

Bekanntes Mitglied
Hat keiner eine Idee? Hab das Problem mal noch etwas eingegrenzt:
Code:
			int jMax = derby.listeT.size();
			System.out.println(jMax);
			for (int s=0; s<jMax; s++){
				model.addElement("Test");
				System.out.println(jMax);
			}
Die Schleife wird durchlaufen, so wie es sein soll, die Konsolenausgabe erfolgt auch dementsprechend. Nur das Hinzufügen zum model passiert einfach nicht.
Das Merkwürdige:
Wenn ich in den Schleifenkopf statt "jMax" als Grenze eine Zahl eintrage, dann funktioniert auch Letzteres.

Kann mir das irgendjemand erklären?

Bitte! Ich verzweifle langsam...
 

SamHotte

Top Contributor
Was bitte ist denn "jContentPane"? (Code 1, Zeile 8)

Meinst du vielleicht Frame.getContentPane()? Das wäre dann vom Typ java.awt.Container.
 

André Uhres

Top Contributor
Bei mir funzt das problömlos :D
Code:
//package schnipsel_2;
/*
 * ListeDemo.java
 */
import java.awt.*;
import java.awt.Container;
import javax.swing.*;
public class ListeDemo extends JFrame {
    public ListeDemo() {
        super("Liste Demo");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        jContentPane = getContentPane();
        DefaultListModel model = new DefaultListModel();
        jThemenListe = new JList( model );
        jThemenListe.setBackground(SystemColor.info);
        JScrollPane jScrollingList = new JScrollPane(jThemenListe);
        jScrollingList.setBounds(new Rectangle(20,550,976,140));
        jScrollingList.setBackground(SystemColor.info);
        jContentPane.add(jScrollingList);
//        int jMax = derby.listeT.size();
        int jMax = 3;
        System.out.println(jMax);
        for (int s=0; s<jMax; s++){
            model.addElement("Test");
            System.out.println(jMax);
        }
    }
    public static void main(String args[]) {new ListeDemo().setVisible(true);}
    private JList jThemenListe;
    private Container jContentPane;
}
 

Taste

Bekanntes Mitglied
Also ich bin noch Newbie,
aber ich habe da eine Methode
Code:
/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.setBackground(java.awt.SystemColor.activeCaptionText);
			jContentPane.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
		}
		return jContentPane;
	}

Das sagt mir doch eigentlich, dass es nicht awt sondern swing ist, oder?

Hat das was mit meinem Problem zu tun?

Gruß
Taste
 

André Uhres

Top Contributor
Versuch's mal mit BorderLayout statt NullLayout
Code:
            jContentPane.setLayout(new BorderLayout());
 

Taste

Bekanntes Mitglied
@ André Uhres:

Ja, sehr merkwürdig. Wenn ich es so mache:
Code:
//        int jMax = derby.listeT.size(); 
        int jMax = 3; 
        System.out.println(jMax); 
        for (int s=0; s<jMax; s++){ 
            model.addElement("Test"); 
            System.out.println(jMax); 
        }

also jMax einen normalen Integerwert zuweise, dann geht es.
Aber hier:
Code:
int jMax = derby.listeT.size();
mache ich doch auch nichts anderes. Und wie gesagt, wenn ich mir den Wert ausgeben lasse, dann sieht das auch gut aus. Außerdem wird alles in der Schleife ausgeführt, bis auf das "model.addElement".

Was mag da los sein?

Und sowas am Freitag ;-)
 

André Uhres

Top Contributor
Code:
//package schnipsel_2;
/*
 * ListeDemo.java
 */
import java.awt.*;
import java.awt.Container;
import javax.swing.*;
public class ListeDemo extends JFrame {
    public ListeDemo() {
        super("Liste Demo");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        jContentPane = getJContentPane();
        setContentPane(jContentPane);
        DefaultListModel model = new DefaultListModel();
        jThemenListe = new JList( model );
        jThemenListe.setBackground(SystemColor.info);
        JScrollPane jScrollingList = new JScrollPane(jThemenListe);
        jScrollingList.setBounds(new Rectangle(20,550,976,140));
        jScrollingList.setBackground(SystemColor.info);
        jContentPane.add(jScrollingList);
//        int jMax = derby.listeT.size();
        int jMax = 3;
        System.out.println(jMax);
        for (int s=0; s<jMax; s++){
            model.addElement("Test");
            System.out.println(jMax);
        }
    }
    /**
     * This method initializes jContentPane
     *
     * @return javax.swing.JPanel
     */
    private JPanel getJContentPane() {
        if (jContentPane == null) {
            jContentPane = new JPanel();
            jContentPane.setLayout(new BorderLayout());
            jContentPane.setBackground(java.awt.SystemColor.activeCaptionText);
            jContentPane.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        }
        return jContentPane;
    }
    public static void main(String args[]) {new ListeDemo().setVisible(true);}
    private JList jThemenListe;
    private JPanel jContentPane;
}
 

Taste

Bekanntes Mitglied
Ja, wie ich schon geschrieben habe, in dem Fall funktioniert das. Da hast Du ja jMax aber auch wieder einen festen Wert zugewiesen. Ist blöd nachzustellen, wenn man die Liste nicht hat, aber das Problem scheint woanders zu liegen.

Hat aber mit dem Layout nichts zu tun, denn wie gesagt, Dein obiges Beispiel funktioniert - auch mit NullLayout.

Gruß Taste
 

André Uhres

Top Contributor
Taste hat gesagt.:
Ja, wie ich schon geschrieben habe, in dem Fall funktioniert das. Da hast Du ja jMax aber auch wieder einen festen Wert zugewiesen. Ist blöd nachzustellen, wenn man die Liste nicht hat, aber das Problem scheint woanders zu liegen.

Hat aber mit dem Layout nichts zu tun, denn wie gesagt, Dein obiges Beispiel funktioniert - auch mit NullLayout.

Gruß Taste
Also das hat mit dem festen Wert kaum etwas zu tun. Welchen Wert bekommst du denn von derby.listeT.size()?
Aber mit NullLayout kann es nicht funktionieren weil wir ja keinen setBounds(..) machen.
 

Taste

Bekanntes Mitglied
Naja, je nach Abfrageergebnis aus der Datenbank. Als Beispiel 41 oder 5 oder was auch immer man sich als integer Zahl so vorstellen kann ;-)

Code:
jScrollingList.setBounds(new java.awt.Rectangle(20,550,976,140));
Meinst Du dies hier? Oder "jContentPane.setBounds..."? Das mache ich wirklich nicht.

Aber wie schon gesagt. Sobald ich vor der Schleife z.B. jMax=5 setze, dann bekomme ich fünf mal "Test" in meine JList. Mache ich aber "int jMax = derby.listeT.size()", dann kommt selbst dann nichts dabei heraus, wenn mir die Konsole via "System.out.println(jMax)" sagt, das jMax ebenfalls 5 ist.

Langsam zweifle ich an mir ... ???:L
 

The_S

Top Contributor
Taste hat gesagt.:
Naja, je nach Abfrageergebnis aus der Datenbank. Als Beispiel 41 oder 5 oder was auch immer man sich als integer Zahl so vorstellen kann ;-)

Ich denke André wollte darauf hinasu, das es vielleicht 0 o. ä. ist und die Schleife damit nicht durchgelaufen wird. Lass dir den Wert doch vorher einfach mal ausgeben.
 

André Uhres

Top Contributor
Vergiss das mit dem setBounds, ich hatte übersehen dass da doch einer ist.
Bist du sicher was in derby.listeT.size() geschieht ?
Hast du die size()-Methode vielleicht überschrieben?
...
 

Taste

Bekanntes Mitglied
Ja, habe ich ja geschrieben:
Mache ich aber "int jMax = derby.listeT.size()", dann kommt selbst dann nichts dabei heraus, wenn mir die Konsole via "System.out.println(jMax)" sagt, das jMax ebenfalls 5 ist.

Ich weise int jMax den Wert von derby.listeT.size() zu, lasse mir den ausgeben auf die Konsole, und verwende ihn dann als Abbruchkriterium für die Schleife. Ich weiß also welchen Wert ich zugewiesen habe.

Also ich befürchte da komme ich so nicht weiter.
 

Brainiac

Bekanntes Mitglied
Bist du dir sicher das auch so viele Werte in der Liste drin stehen wir dir der size() Wert ausgibt. Bei Vectoren kann es auch sein das sie größer sind als sie Werte enthalten. Welchen Listentyp benutz du denn? in JList ist size() deprecated. Eventuell da noch mal schauen.
 

Taste

Bekanntes Mitglied
Hallo, ja, da bin ich mir sicher. Ich lasse doch den Inhalt der List (JList) auch auf die Console ausgeben, und das funktioniert. Die Schleife wird auch entsprechend dem .Size()-Wert ausgeführt (Consolenausgabe). Nur bei model.addElement passiert scheinbar nix. Ich hab soetwas noch nicht erlebt ;-)
Code:
DefaultListModel model = new DefaultListModel(); 
			jThemenListe = new JList( model );
			jThemenListe.setBackground(java.awt.SystemColor.info);
			JScrollPane jScrollingList = new JScrollPane(jThemenListe);
			jScrollingList.setBounds(new java.awt.Rectangle(20,550,976,140));
			jScrollingList.setBackground(java.awt.SystemColor.info);
			model.clear();			
			jContentPane.add(jScrollingList);
			
			jContentPane.validate();
			jContentPane.repaint();
			
			int jMax = derby.listeT.size();
			//jMax = 5;
			for (int s=0; s<=jMax; s++){
				System.out.println("jMax: " + jMax);
				System.out.println("s: " + s);
				model.addElement("Test");
			}

Ich weiß echt nicht mehr weiter. Ich muss doch weiterkommen und kann mich nicht solange an diesem Problem aufhalten. Weiß jemand eine Alternative für mich, vielleicht ohne JList? Es geht darum, dem Anwender als Resultat eines Fragenkataloges eine Menge von Lösungen zu präsentieren, aus denen er dann eine auswählen / öffnen können soll...

Gruß,
Taste
 

Taste

Bekanntes Mitglied
Oh Mann, Dummheit gehört betraft, was?
Code:
DefaultListModel model = new DefaultListModel();
Das ist ja soweit schön, nur wenn ich model dann Elemente hinzufüge, aber diese Zeile gleich wieder aufrufe, dann wird meine JList wohl immer scheinbar leer sein, was?

Danke an alle, die sich die Mühe gemacht haben, mir zu helfen. Leider war der Fehler aus dem von mir geposteten Codeschnippsel nicht zu erkennen. Entschuldigung!

Gruß, Taste
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Probleme mit Exportieren einer jar-datei /keine Anzeige mehr Java Basics - Anfänger-Themen 5
M Keine Anzeige, wenn ich die Classe umbenenne Java Basics - Anfänger-Themen 13
G Problem mit JPanel, bekomme keine Anzeige! Java Basics - Anfänger-Themen 4
krgewb Keine richtige Doku Java Basics - Anfänger-Themen 5
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
Nooobi Regex und .matches() geben keine Ausnahme Java Basics - Anfänger-Themen 10
berserkerdq2 Warum ist das keine Referenzkopie mehr? Java Basics - Anfänger-Themen 26
O Java 17 keine Pflicht um Exceptiones zu behandeln? Java Basics - Anfänger-Themen 2
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
M Keine Ausführung von System.out.println() Java Basics - Anfänger-Themen 3
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
B Ich kann keine Hühner töten Java Basics - Anfänger-Themen 49
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
I Regex findet keine Treffer Java Basics - Anfänger-Themen 4
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
T Bei mir wird keine javac angezeigt sondern nur javacpl Java Basics - Anfänger-Themen 2
R Keine Verbindung mit MariaDB Java Basics - Anfänger-Themen 18
O Input/Output newbile und keine Ahnung! Java Basics - Anfänger-Themen 16
S Kann keine Bilder laden? Java Basics - Anfänger-Themen 9
C Problem: PC ohne Internet und keine Möglichkeit Programme zu laden Java Basics - Anfänger-Themen 5
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
D jsoup.select findet keine elemente Java Basics - Anfänger-Themen 2
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
W Was bedeutet im Struktogramm „zufall“ aufrufen (keine Parameterübergabe)? Java Basics - Anfänger-Themen 8
T Keine Ahnung vom Programieren Java Basics - Anfänger-Themen 28
A SelectionSort bringt keine konstanten Ergebnisse Java Basics - Anfänger-Themen 4
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
C Keine javac.exe in bin-Datei Java Basics - Anfänger-Themen 3
A Vollkommene Zahlen: Findet keine Einzige Java Basics - Anfänger-Themen 9
J Input/Output javac HelloWorld.java - Keine Textausgabe in der Konsole Java Basics - Anfänger-Themen 4
H JDK installieren keine Installationsroutine bei Javainstallation sichtbar Java Basics - Anfänger-Themen 4
H Buttons zeigen keine Reaktion Java Basics - Anfänger-Themen 6
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
snipesss IDE zeigt keine Fehler an, Programm wird jedoch nicht ausgeführt. Java Basics - Anfänger-Themen 18
Khorgoroth Erste Schritte Keine Ausgabe Java Basics - Anfänger-Themen 2
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
Z AWT package -> keine Konsole? Java Basics - Anfänger-Themen 2
Henri keine Ausgabe Java Basics - Anfänger-Themen 5
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
C Java stellt unter Windows keine Umlaute dar Java Basics - Anfänger-Themen 9
A Keine Konsolenausgabe Java Basics - Anfänger-Themen 5
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
D Compiler-Fehler NullPointerExeption aber Ecplise zeigt keine Fehler an?! Java Basics - Anfänger-Themen 8
D addActionListener zeigt keine Wirkung Java Basics - Anfänger-Themen 8
S Warum erlaubt ein while-Loop keine Variablen-Declaration wie der for-Loop..? Java Basics - Anfänger-Themen 6
M Lottozahlen 6 aus 49 keine doppelten Java Basics - Anfänger-Themen 5
D Keine Ausgabe in meinem Helden Programm Java Basics - Anfänger-Themen 2
M Keine Ausgabe Java Basics - Anfänger-Themen 4
C PrintWriter schreibt keine in Strings enthaltenen Zeilenumbrüche Java Basics - Anfänger-Themen 9
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
K Keine doppelten Zufallszahlen im Array Java Basics - Anfänger-Themen 17
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4
1 Mini Programm, keine Eingabe möglich.. Java Basics - Anfänger-Themen 6
P Wiedereinstieg und kann keine Dateien mehr öffnen... Java Basics - Anfänger-Themen 13
R Keine doppelten Zufallszahlen Java Basics - Anfänger-Themen 2
T Buffererwriter keine Exception obwohl Client weg Java Basics - Anfänger-Themen 2
D Java Eclipse hat scheinbar keine library Java Basics - Anfänger-Themen 2
M Keine Datenbank verbindung Java Basics - Anfänger-Themen 14
E Keine Ausgabe der Konsole Java Basics - Anfänger-Themen 4
Pentalon Eclipse JUNO keine Vorschläge von Methoden bzw. Interfaces der eigenen Klassen Java Basics - Anfänger-Themen 5
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
D Erstellte Jar datei zeigt keine Bilder an Java Basics - Anfänger-Themen 5
L Klassen Ich kann keine .jar Dateien mehr öffnen Java Basics - Anfänger-Themen 4
J Haben Chars wirklich keine KeyCodes? Java Basics - Anfänger-Themen 12
L Applet : keine Recht für Zugriff auf Clipboard (trotz Zertifikat) Java Basics - Anfänger-Themen 4
A contains bzw. indexOf liefert keine Treffer? Java Basics - Anfänger-Themen 3
M Java Webstart keine Zugriffe Java Basics - Anfänger-Themen 7
W Eclipse erstellt keine Klassen Java Basics - Anfänger-Themen 6
B Aus einem Eclipse Projekt eine .jar - keine Bilder drin Java Basics - Anfänger-Themen 7
K org.h2.jdbc.JdbcSQLException: Keine Daten verfügbar Java Basics - Anfänger-Themen 9
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
E String soll mit Großbuchstaben anfangen und keine Sonderzeichen enthalten Java Basics - Anfänger-Themen 4
P Zugriff auf Attribute einer Klasse, zu der keine Verbindung besteht Java Basics - Anfänger-Themen 11
J InputStreamReader + BufferedReader - keine Eingabemöglichkeit Java Basics - Anfänger-Themen 10
T JTable keine spaltenbeschriftung Java Basics - Anfänger-Themen 2
G Input/Output FilenameFilter aber bitte keine Unterordner Java Basics - Anfänger-Themen 5
M nach jar export keine db abfrage möglich Java Basics - Anfänger-Themen 2
G JDK installieren keine eclipse.exe gefunden Java Basics - Anfänger-Themen 16
S Erste Schritte Wo steht eigentlich das ein jar keine andere jars enthalten darf? Java Basics - Anfänger-Themen 19
O Erste Schritte Klassenname zurückgeben, keine instanz Java Basics - Anfänger-Themen 23
K keine Reaktion im TableModel nach ändern der liste? Java Basics - Anfänger-Themen 2
T keine buchstaben!nur zahlen eingabe möglich Java Basics - Anfänger-Themen 48
M keine geschwungenen Klammern Java Basics - Anfänger-Themen 9
E Input/Output Socket bekommt keine Verbindung bei funktionierendem Fremdziel Java Basics - Anfänger-Themen 2
V JavaApplet versendet keine mail Java Basics - Anfänger-Themen 8
B Interface Nach "package"-Nennung keine Toolbar-Icons mehr Java Basics - Anfänger-Themen 5
B Geerbte Instanz kann keine void Methode ausführen?! Java Basics - Anfänger-Themen 15
S Java Web Start lädt keine Bilder Java Basics - Anfänger-Themen 2
P Keine Rechenoperationen bei Doublewert? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben