JPanel zeigt nichts an durch Klicken auf das Button.

Status
Nicht offen für weitere Antworten.
I

InVisI

Gast
hallo ich hoffe ihr könnt mir weiterhelfen... ich finde nicht die korrekte lösung die ich suche...


und zwar will ich ganz normal durch klicken auf das Button in einem JPanel ausgibt... hab das mit ActionListener alles erledigt und funktioniert auch (mehr oder weniger) . Es zeigt die ausgabe unsichtbar an...ausser wenn ich das Fenster von der größe verändere zeigt es richtig an..

habe ich irgendetwas vergessen einzugeben? bin noch ein Neuling also daher würde ich mich freuen wenn ihr mir weiterhelfen würdet.


Code:
		zahlen = new JPanel();
		zahlen.setLayout(new GridLayout(5, 4, 30, 10));
		zahlen.setBackground(new Color(125,170,210));


	
	public void actionPerformed(ActionEvent e) {
		System.out.println("Action Performed");
		for (int i = 2; i <= 31; i++) {
			System.out.println(+ i);
			JPanel numbr = new JPanel();
			JLabel nr = new JLabel(""+i);
			nr.setHorizontalAlignment(SwingConstants.CENTER);
			zahlen.add(nr);
			
		}
	}
}
[/code]
 
I

InVisI

Gast
hhmm tut sich leidern ichts oder ich habe es falsch eingesetzt

etwa so :


public void actionPerformed(ActionEvent e) {
System.out.println("Action Performed");
zahlen.repaint();


???


sry aber so genau weis ich das noch nicht aber dadurch werde ich es dann verstehen wie es abläuft!

danke schonmal im Voraus
 
S

SlaterB

Gast
repaint() ist weniger nötig,
eher validate(), am besten an höchster Stelle am JFrame-Objekt aufrufen
 

@x.l

Bekanntes Mitglied
InVisI hat gesagt.:
und zwar will ich ganz normal durch klicken auf das Button in einem JPanel ausgibt... hab das mit ActionListener alles erledigt und funktioniert auch (mehr oder weniger) . Es zeigt die ausgabe unsichtbar an...ausser wenn ich das Fenster von der größe verändere zeigt es richtig an..

Kannst du das nochmal für jeden verständlich formulieren? Ich kann nur erahnen was du meinst...
 
G

Guest

Gast
Wenn ich auf das StartButton klicke zeigt er im Fenster nichts an..... nur dann erst wenn ich die Fenstergröße mit der Mouse ändere

hier der Aufbau :



Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

/**
 * 
 * @author gast2
 * 
 */

public class Gridtest extends JFrame implements ActionListener {

	private JPanel zahlen;

	public Gridtest() {

		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(500, 400);
		this.setTitle("Sieb des Eratosthenes ");
		this.setLayout(new GridLayout());
		
		JPanel first = new JPanel();
		first.setBackground(new Color(235, 245, 250));

		first.setLayout(new BorderLayout());

		zahlen = new JPanel();
		zahlen.setLayout(new GridLayout(5, 4, 30, 10));
		zahlen.setBackground(new Color(125,170,210));

		first.add(zahlen, BorderLayout.CENTER);

		JLabel headline = new JLabel();
		first.add(BorderLayout.PAGE_START, new JLabel("    "));

		JLabel left = new JLabel();
		first.add(BorderLayout.WEST, new JLabel("    "));

		JLabel right = new JLabel();
		first.add(BorderLayout.LINE_END, new JLabel("    "));

		
		JButton button = new JButton("Start");
		first.add(BorderLayout.PAGE_END, button);
		button.addActionListener(this);

		
		
		this.add(first, BorderLayout.CENTER);

		this.setVisible(true);
	}

	
	public static void main(String[] args) {

		new Gridtest();

	}

	
	public void actionPerformed(ActionEvent e) {
		zahlen.validate();
		System.out.println("Action Performed");
		for (int i = 2; i <= 31; i++) {
			System.out.println(+ i);
			JPanel numbr = new JPanel();
			JLabel nr = new JLabel(""+i);
			nr.setHorizontalAlignment(SwingConstants.CENTER);
			zahlen.add(nr);
			
		}
	}
}
[/code]
 
Zuletzt bearbeitet von einem Moderator:
I

InVisI

Gast
Perfekt ..jetzt klappts..Vielen Dank..

ich hätteda noch eine andere frage falls ihr nichts dagegen habt...

wie bekomme ich nun die zahlen nach der reihenfolge ausgegeben ich was von sleep gehört ...könnt ihr mir da weiterhelfen plz^^
 
G

Guest

Gast
so habe was ausprobiert es kommt aber einen Fehler(in der Zeile 26) kann mir einer sagen was da genau hin soll und ob das genau richtig ist wie ich das mit der Sleep-Methode augebaut hab?

Code:
	public static void main(String[] args) {

		new Gridtest();

	}
	
	
	public void actionPerformed(ActionEvent e) {
		System.out.println("Action Performed");
		for (int i = 2; i <= 31; i++) {
			System.out.println(+ i);
			JPanel numbr = new JPanel();
			JLabel nr = new JLabel(""+i);
			nr.setHorizontalAlignment(SwingConstants.CENTER);
			zahlen.add(nr);
			zahlen.validate();
			

			
		System.out.println(""+i); 
		try{	
			Thread.sleep(5000);				
		}	
		catch(InterruptedException e){
		System.out.println("Sleep Interrupted");
		}
		
		}
	}
	
}
 

@x.l

Bekanntes Mitglied
Du hast e zweimal deklariert. Einmal als Parameter ActionEvent in Zeile 10 und dann nochmal als Exception in Zeil 26. Benenne die Exception einfach um!
 
I

InVisI

Gast
ok habs unbenannt.... nunr läuftes nur über die console und zwar zeigt er mir doppelte Werte wie : 22 ...33....44....55..66.. etc .... und über das Fenster keine reaktion bleibt iwie hängen! =( oh mannn
 

@x.l

Bekanntes Mitglied
Die doppelten Werte zeigt er dir an, weil du zweimal System.out.println() machst (Zeile 13 + 22).

Er hängt nicht, er wartet - wähle mal einen kleineren sleep-Wert, immerhin wartest du bei jedem Durchgang 5sek.
 
I

InVisI

Gast
Es ist jetzt so... er listet die in der console auf und sobald der Wert(bei mir die 31) erreicht wurde , zeigt er es dann aufm fenster
 

@x.l

Bekanntes Mitglied
Du musst die Ereignisverarbeitung in einen separaten Thread auslagern. Im Moment läuft die Ergeignissverarbeitung und das Darstellung in einem Thread, d.h. solange du innerhlab der actionPerformed bis, kann nicht neu gezeichnet werden.

Lege also einen neuen Thread innerhalb der actionPerformed an, am einfachsten so:
Code:
public void actionPerformed(ActionEvent e) {
	System.out.println("Action Performed");
	Thread t = new Thread() {
		public void run() {
			for (int i = 2; i <= 31; i++) {
				System.out.println(+i);
				JPanel numbr = new JPanel();
				JLabel nr = new JLabel("" + i);
				nr.setHorizontalAlignment(SwingConstants.CENTER);
				zahlen.add(nr);
				zahlen.validate();

				try {
					Thread.sleep(50);
				} catch (InterruptedException ie) {
					System.out.println("Sleep Interrupted");
				}

			}
		}
	};
	t.start();
 
I

InVisl

Gast
kann mir keiner helfen Bitte ? ich hab was von Thread gehört nur wie kann ich das mit der codierung umsetzen?

:?: :?: :?: :?: :?: :?:
 
G

Guest

Gast
Vielen Vielen Dank @x.I ! habe dein Eintrag nicht gesehen......

Es läuft nun fasst so wie ich es viel ausser das er die zahlen die er am Fenster ausgibt nicht Gitterweise ausgibt sondern untereinander bzw. durcheinander... gibt es dafür auch irgend ne Einstellung , weil ich habe bis jetzt noch nichts gefunden..
 

@x.l

Bekanntes Mitglied
Du meinst, dass sich alle Felder bereits an ihrem Platz befinden sollen, d.h. die 2 links oben und so weiter....

Eine Einstellung dafür gibt es imho nicht. Für das "Verschieben" ist der LayoutManager verantwortlich, er teilt den vorhanden Platz auf alle bereits vorhanden Elemente gleichmäßig auf.

Du müsstest also das Befüllen in zwei Durchgängen machen. Zuerst dein JPanel zahlen mit "leeren" JPaneln befüllen. Diese dann in einem zweiten Durchgang mit Beschriftung (JLabel) versehen...

#edit: Ich weiß allerdings nicht wie es sich bei Verwendung mit dem GridBagLayout verhält (habs nicht so mit GUI :wink: )
 
I

InVisl

Gast
ja so habe ich das gemeint das die Zahlen halt von Links nach rechts ausgibt und nicht das er direkt von der mitte anfängt etc..
Danke für den Tipp
Ich werde mal weiter rumexperiementieren... ich danke dir vielmals für deine Hilfe...=)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
J Ein mit UI-Designer erstelltes JPanel einblenden Java Basics - Anfänger-Themen 0
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
Zeppi JPanel responsive Grid Java Basics - Anfänger-Themen 0
J JPanel in JScrollPanel Java Basics - Anfänger-Themen 4
Elyt JPanel als HintergrundBild Java Basics - Anfänger-Themen 7
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
O Swing JPanel Java Basics - Anfänger-Themen 4
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
D Animation JPanel Java Basics - Anfänger-Themen 1
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
D Auf angeklicktes JPanel zugreifen Java Basics - Anfänger-Themen 5
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
D JPanel passt die Größe nicht an Java Basics - Anfänger-Themen 22
Y Webinhalt JPanel Java Basics - Anfänger-Themen 6
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
S JPanel variablenabhängig erstellen Java Basics - Anfänger-Themen 13
J Methoden Dinge auf einem JPanel paltzieren Java Basics - Anfänger-Themen 1
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
J Probleme mit eigenem JPanel (IDE Eclipse) Java Basics - Anfänger-Themen 4
S JPanel wird versetzt auf JFrame gelegt 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
R Focus auf JPanel im Thread Java Basics - Anfänger-Themen 9
I Problem mit JPanel Java Basics - Anfänger-Themen 0
B JPanel ändert die Hintergrundfarbe nicht Java Basics - Anfänger-Themen 2
F Threads funktionieren auf JPanel nicht Java Basics - Anfänger-Themen 1
C JPanel in MessageDialog Java Basics - Anfänger-Themen 1
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
M Listener einerm JPanel hinzufuegen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
Q JPanel Java Basics - Anfänger-Themen 2
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
N String auf JPanel bewegen Java Basics - Anfänger-Themen 6
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
S Layout mit JPanel in JScrollPanel funktioniert nicht Java Basics - Anfänger-Themen 3
S JPanel drucken -> PrinterException Java Basics - Anfänger-Themen 2
B JPanel -JTable Java Basics - Anfänger-Themen 2
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
L zoomen aus jpanel Java Basics - Anfänger-Themen 7
P Bekomme in meinen JPanel nur eine JComponente angezeigt Java Basics - Anfänger-Themen 7
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Veränderungen am JPanel vom JDialog aus Java Basics - Anfänger-Themen 6
F JPanel zu klein Java Basics - Anfänger-Themen 5
D GUI - Objekte in JPanel nach oben schieben Java Basics - Anfänger-Themen 2
S JPanel wird nicht eingefügt Java Basics - Anfänger-Themen 3
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
Kenan89 JPanel mit JTable Java Basics - Anfänger-Themen 9
I JPanel in JPanel Java Basics - Anfänger-Themen 2
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
J Auf einem JPanel ein JFrame platzieren Java Basics - Anfänger-Themen 10
S JPanel anzeige Java Basics - Anfänger-Themen 2
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
T Zugreifen auf JPanel Java Basics - Anfänger-Themen 4
K JPanel auslagern Java Basics - Anfänger-Themen 9
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
T Tastendruck simulieren in JPanel Java Basics - Anfänger-Themen 3
P JPanel in JTable einfügen Java Basics - Anfänger-Themen 23
E Erste Schritte Objekte werden in JPanel angedockt und maximiert Java Basics - Anfänger-Themen 7
M Componenten auf JPanel anzeigen Java Basics - Anfänger-Themen 2
F JPanel als JPG - weisse Fläche Java Basics - Anfänger-Themen 9
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
M JLabel auf JPanel positionieren Java Basics - Anfänger-Themen 8
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
D JPanel + ein JLabel Java Basics - Anfänger-Themen 8
B JPanel-Oberfläche speichern Java Basics - Anfänger-Themen 9
X JTable in JPanel in JTabbedPane mouseevent von jtable kommt nicht durch Java Basics - Anfänger-Themen 3
P GUI, JPanel Java Basics - Anfänger-Themen 7
H JPanel in andere Klasse übergeben Java Basics - Anfänger-Themen 7
D Grösse eines JPanel hinsichtlich LayoutManager festlegen Java Basics - Anfänger-Themen 4
B JPanel über anderem JPanel Java Basics - Anfänger-Themen 6
F zeichnen in JPanel Java Basics - Anfänger-Themen 7
F Unterschied JPanel und JFrame Java Basics - Anfänger-Themen 5
U JPanel dynamisch gestalten Java Basics - Anfänger-Themen 7
H Zeichnen in JPanel Java Basics - Anfänger-Themen 8
K Auf JPanel Zeichnen Java Basics - Anfänger-Themen 8
C jPanel im jPanel verändern Java Basics - Anfänger-Themen 15
B JPanel nachträglich verändern Java Basics - Anfänger-Themen 20
C JPanel erhält sporadisch keinen Fokus Java Basics - Anfänger-Themen 3
I repaint bei jpanel Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben