JLabel zur Laufzeit dynamisch erzeugen

Kros

Mitglied
Hallo Zusammen
Vielleicht kann jemand einem interessierten Anfäger einen Tip geben. Ich konnte bereits einiges durch mitlesen in Foren, sowie mittels Tutorials oder auch der bekannten Insel durchschummeln. Nun komme ich aber einfach nicht weiter, da ich nicht verstehe wo ich suchen muss.

Was?
JLabel und JTextField während der Laufzeit erstellen und diese dann in einem JPanel anzeigen lassen.

Wozu?
Erstens zum Üben und zweitens will ich:
Aus einer JavaDB eine Tabelle auswählen (Über eine JComboBox)  Das hab ich
Die ausgewählte Tabelle im Fenster anzeigen lassen  Das hab ich
Pro Tabellenspalte ein JLabel und ein JTextField anzeigen.  Das geht nicht.

Stand?
Ich versuche aktuell nur die JLabel anzuzeigen, wenn das funktioniert sollte das JTextField kein problem mehr darstellen. Zur auswahl habe ich mal zwei Tabellen erstellt, eine mit 2 Spalten, die andere mit 3 spalten. Diese kann ich über die JComboBox auch wählen, und die Tabellen werden dann auch korrekt angezeigt. Nur die JLabel kommen nicht.

Fehlermeldung?
Gerade aktuell garkeine, wenn ich auf Run klicke. Dann kann ich die Tabelle wählen, diese wird angezeigt, aber die JLabel nicht.
Wenn ich den Debugger laufen lasse und Schritt für Schritt, Zeile für Zeile durchgehe bricht er entweder in der Methode createLabels() ab.

Code:
labels[i] = new JLabel("message" + i); // Source not found

Oder beim nochmaligen Wählen einer Tabelle aus der JComboBox bricht er am Ende des ActionListeners ab:


Relevanter Codeschnippsel

Java:
	private JPanel PanelHaupt;
	private JPanel PanelFelder;
Java:
	public ForTabellen() {
		// Definition der Listener
		action actionListener = new action();

		// Fenster einrichten
		setTitle("SQL Tabellen bearbeiten");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		// Top-Level Layout
		setLayout(new BorderLayout());

		JPanel PanelWahl = new JPanel();
		PanelHaupt = new JPanel();
		JPanel PanelButton = new JPanel();

		add(PanelWahl, BorderLayout.NORTH);
		add(PanelHaupt, BorderLayout.CENTER);
		add(PanelButton, BorderLayout.SOUTH);

Java:
		// PanelHaupt
		PanelHaupt.setLayout(new BorderLayout());

		JScrollPane PanelTabelle = new JScrollPane();
		PanelHaupt.add(PanelTabelle, BorderLayout.NORTH);

		PanelFelder = new JPanel();
		// PanelFelder.setLayout(new GridLayout(2,2));
		PanelHaupt.add(PanelFelder, BorderLayout.CENTER);
		
		// TODO später löschen: JLabel erstellen zum Testen ob das grundsätzlich funktioniert
		JLabel jl = new JLabel("TextLabel ausserhalb der for Schleife");
		PanelFelder.add(jl);
Java:
	private class action implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			strCmbWahl = (String) cmbTabelle.getSelectedItem();

			// SQL String in abhängigkeit vom DropDown erstellen
			strSQL = test.getSQL(strCmbWahl);
			labSQL.setText(strSQL);

			// Tabelle füllen
			try {
				dbFirma.setQuerry(strSQL);
				tbmd = dbFirma.rsToTableModel(dbFirma.getResultSet());
				TabTabelle.setModel(tbmd);
				TabTabelle.repaint();
				drawFelder();
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}

	}

	private void drawFelder() {
		// TODO drwaFelder() Methode: Eingabefelder zum Panel hinzufügen führt
		// zu Fehler

		// Panel und Felder erzeugen
		Spaltenanzahl = dbFirma.getSpaltenAnzahl();
		try {
			JLabel[] labels = createLabels(Spaltenanzahl);
			for (int i = 0; i < labels.length; i++) {
				PanelFelder.add(labels[i]);
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}

	}

	private JLabel[] createLabels(int Anzahl) {
		Anzahl = Spaltenanzahl-1;
		JLabel[] labels = new JLabel[Anzahl - 1];
		for (int i = 0; i < Anzahl - 1; i++) {
			labels[i] = new JLabel("message" + i);
		}
		return labels;
	}
 
Zuletzt bearbeitet:

grindelaner

Bekanntes Mitglied
Wenn du ein JLabel bzw. JComponent in ein JPanel hinzufügen willst, machst du das mit
panel.add(Component com) anschließend musst du das Panel neu rendern. Also panel.updateUI().

Das sollte eigendlich schon alles sein...
 

Kros

Mitglied
Danke, hatte schon Vorfreude... hat aber nichts gebracht.

Ich gehe davon aus dass:

[JAVA=46] labels = new JLabel("message" + i);[/code]

dazu führt dass nichts passiert.

Weitere Ideen?
 

Kros

Mitglied
Ohne das ich jetzt überheblich tue, sollte es aber doch gehen, oder hab ich was nicht verstanden.
Soweit ich das verstanden habe spielt es keine Rolle ob die eckigen Klammern Nach dem Typ, oder nach dem Variabelnnamen stehen.

Code:
JLabel[] labels = new JLabel[5]
ist gleich wie
Code:
JLabel labels[] = new JLabel[5]

Aus dem Forum:
Java:
Datensatz datensaetze[] = new Datensatz[6];
datensaetze[0] = new Datensatz("Foo", "Oof", 123);
datensaetze[1] = new Datensatz("Bar", "Rab", 456);
datensaetze[2] = new Datensatz("Foobar", "Raboof", 789);

Aus meinem Quellcode:
Java:
JLabel labels[] = new JLabel[Anzahl - 1]; // Anzahl ist eine Instanzvariabel
// ... Hier steht noch etwas Code
labels[i] = new JLabel("message" + i);
 

VfL_Freak

Top Contributor
Moin,

Aus meinem Quellcode:
Java:
JLabel labels[] = new JLabel[Anzahl - 1]; // Anzahl ist eine Instanzvariabel
Das ist auch ok, damit legst Du ein Array mit "Anzahl - 1" Elementen an ....

Java:
labels[i] = new JLabel("message" + i);
Dies ist aber Quark!
Es gibt keinen Konstruktor mit diesen Parametern "new JLabel( String + int )";
Deshalb kommt da wohl auch deine Fehlermeldung!

Was hast Du denn da überhaupt vor ?

Gruß
Klaus
 
Zuletzt bearbeitet:

Kros

Mitglied
Ich hab auch schon versucht dem Konstruktor nur einen String zu übergeben. Das Ergebnis hat sich aber nicht verändert.
Code:
labels[i] = new JLabel("message");

Aktuell will ich einfach einpaar JLabels erstellen und zwar genau soviele wie meine Tabelle Spalten hat. Wenn das funktioniert will ich noch Textfelder erstellen um neue Datensätze der Tabelle hinzuzufügen.

Will mit dem Zeugs einfach einbisschen ausprobieren, verbessern neues lernen.

Hast du vielleicht ein Beispiel?
 

Kros

Mitglied
So was von doof... das ganze funktioniert. Ich konnte das Label einfach nicht sehen. Erst als ich mein Fenster unten vergrössert habe wurde das Label sichtbar.

Danke für die Hilfe.

Gruss
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JLabel/JPanel zur Laufzeit ändern Java Basics - Anfänger-Themen 6
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
J JLabel bzw. Image Icon mit KeyEvent bewgen Java Basics - Anfänger-Themen 9
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
JUNSKI Zeilenumbruch JLabel Java Basics - Anfänger-Themen 1
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
Tom/S JLabel Icon Farbe Java Basics - Anfänger-Themen 2
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
S Kontrollieren, ob ein Jlabel nicht sichtbar ist Java Basics - Anfänger-Themen 6
S Input/Output JLabel verschieben Java Basics - Anfänger-Themen 7
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
CptK Interface JLabel bewegt sich nicht sondern teleportiert sich... Java Basics - Anfänger-Themen 3
CptK Methoden JLabel erstellen & verschieben Java Basics - Anfänger-Themen 1
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
A JLabel mit button drücken verändern Java Basics - Anfänger-Themen 6
CptK JLabel im Array Java Basics - Anfänger-Themen 2
L Threads Mit Threads JLabel ändern! Java Basics - Anfänger-Themen 2
D Methoden JButton und JLabel in einer Methode erstellen Java Basics - Anfänger-Themen 5
P Auf JLabel zugreifen Java Basics - Anfänger-Themen 12
P Erste Schritte JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 4
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
M Vererbung Ein JLabel einer Elternklasse anzeigen Java Basics - Anfänger-Themen 8
D Klassen Wert aus JTextfield in JLabel (andere Klasse) darstellen. Java Basics - Anfänger-Themen 60
J Array in JLabel ausgeben Java Basics - Anfänger-Themen 2
S Variablen JLabel backImagePanel Fehlermeldung Java Basics - Anfänger-Themen 3
snipesss [Java] Schriftart und Schriftgröße von JLabel in einer Zeile festlegen? Java Basics - Anfänger-Themen 3
J JLabel cannot be resolved Java Basics - Anfänger-Themen 8
S JLabel sichtbar machen/GUI Java Basics - Anfänger-Themen 3
WetWer Animation JLabel Java Basics - Anfänger-Themen 2
W aus Methode auf JLabel zugreifen und Image verändern Java Basics - Anfänger-Themen 1
W JLabel in Main aus Thread verändern. Java Basics - Anfänger-Themen 4
L Variable für JLabel wird nicht erzeugt Java Basics - Anfänger-Themen 6
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
T Objekt in ein JLabel der GUI übergeben Java Basics - Anfänger-Themen 3
S JLabel an Methode übergeben Java Basics - Anfänger-Themen 2
D Ausgabe über JLabel Java Basics - Anfänger-Themen 12
M Erste Schritte Wie speichert und gibt man Arrays aus? (JLabel) Java Basics - Anfänger-Themen 12
M Fangspiel-Probleme (JLabel, Objekt zurücksetzen) Java Basics - Anfänger-Themen 3
C Rechenaufgabe im JLabel ausrechnen Java Basics - Anfänger-Themen 2
J JLabel Icon neu zeichnen Java Basics - Anfänger-Themen 2
Z JLabel Icon ändern Java Basics - Anfänger-Themen 2
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
D JLabel ändern in actionperformed Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
G drawString/ JLabel updaten Java Basics - Anfänger-Themen 1
G mouseDragged auf Jlabel Java Basics - Anfänger-Themen 2
M Frage zu JLabel Java Basics - Anfänger-Themen 5
T JLabel-Bilderpfad ändern... Java Basics - Anfänger-Themen 2
T JLabel anzeigen lassen... Java Basics - Anfänger-Themen 6
T Mein String in ein JLabel stecken Java Basics - Anfänger-Themen 2
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
T JLabel zum klicken... Java Basics - Anfänger-Themen 15
W Datentypen String-Ausgabe in jLabel Java Basics - Anfänger-Themen 14
J JLabel Ausgabe Java Basics - Anfänger-Themen 3
B mouseClicked JLabel Array mitteilen Java Basics - Anfänger-Themen 6
L JLabel Icon Größe anpassen Java Basics - Anfänger-Themen 11
A Zeilenumbruch im Jlabel Java Basics - Anfänger-Themen 11
3 JLabel - Text in mehreren Zeilen zentrieren Java Basics - Anfänger-Themen 5
R JLabel imageicon jede Sekunde wechseln Java Basics - Anfänger-Themen 3
G GUI JLabel ersetzen Java Basics - Anfänger-Themen 3
M Zeilenumbruch in JLabel Java Basics - Anfänger-Themen 51
A Bildgröße automatisch auf JLabel Größe konvertieren Java Basics - Anfänger-Themen 9
S Text in einem JLabel nur zum Teil Fett Java Basics - Anfänger-Themen 2
B JLabel Text Formatierung Java Basics - Anfänger-Themen 5
J Bild auf JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 11
S NullPointerException bei zweidimensionalem JLabel-Array Java Basics - Anfänger-Themen 4
T JLabel richtig anordnen? wie gehts? Java Basics - Anfänger-Themen 9
L GridLayout mit JLabel-Array füllen Java Basics - Anfänger-Themen 12
SexyPenny90 JLabel Text und Icon untereinander verwenden Java Basics - Anfänger-Themen 3
B JLabel löschen/überschreiben Java Basics - Anfänger-Themen 10
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
A JLabel erst auf null dann auf einen Wert setzen Java Basics - Anfänger-Themen 7
F JLabel-Background Java Basics - Anfänger-Themen 7
T JLabel Farbe ändern, Problem Java Basics - Anfänger-Themen 2
T JLabel mit Text und Bild Java Basics - Anfänger-Themen 3
C JLabel markieren Java Basics - Anfänger-Themen 2
M BeanBinding Jlist an Jlabel Java Basics - Anfänger-Themen 2
M OOP JLabel werden nicht korrekt eingefärbt Java Basics - Anfänger-Themen 6
P JLabel prüfen,... Java Basics - Anfänger-Themen 6
M JLabel auf JPanel positionieren Java Basics - Anfänger-Themen 8
P JLabel auf JFrame - Schrift vergrößern Java Basics - Anfänger-Themen 2
Z Fonts in einem JLabel Java Basics - Anfänger-Themen 7
MonsterBit setText bei JLabel Java Basics - Anfänger-Themen 16
K Zufällige Auswahl innerhalb eines Arrays und Arrays aus JLabel füllen Java Basics - Anfänger-Themen 32
D JPanel + ein JLabel Java Basics - Anfänger-Themen 8
M JLabel attribut wert zuweisen Java Basics - Anfänger-Themen 2
E JLabel deaktivieren ohne Veränderung der Darstellung Java Basics - Anfänger-Themen 2
0 Icon in JLabel Java Basics - Anfänger-Themen 6
JAVAnnik variable erhöhen bei Klick auf JLabel Java Basics - Anfänger-Themen 3
T JLabel wird nicht gesetzt in Schleife Java Basics - Anfänger-Themen 9
T aus stateChanged ein JLabel adden Java Basics - Anfänger-Themen 6
P HTML <input> Feld in einem JLabel auslesen Java Basics - Anfänger-Themen 4
C Inhalt eines Strings in JLabel ausgeben? Java Basics - Anfänger-Themen 21
T JLabel durch ActionListener ändern Java Basics - Anfänger-Themen 4
L Rahmen bei jLabel Java Basics - Anfänger-Themen 3
F JLabel Problem? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben