Swing JButton werden richtig gewechselt aber die Maus macht die alten wieder Sichtbar??

Onliner

Mitglied
Hallo zusammen,

ich habe lange gesucht im Internet und nichts passendes gefunden. Das Problem löst auch kein Problem / fehler aus. Und wenn ich die Maus in Ruhe lasse funktioniert auch alles wie ich es will.

ich will eine Art Menuführung machen in dem ich auf der linken seite Buttons habe und wenn ich diese anklicke auf der Rechten Seite (mittelBereich) kommen dann weitere Buttons. Wenn ich auf die linken Buttons drücke kommen auch die richtigen Buttons. Beim 1. Mal alles ok. Wenn ich nun das 2. mal den anderen linken Button drücke kommen auch die dafür vorgesehene Buttons nur wenn ich mit der Maus in über die rechten Buttons gehe erscheinen auch die vorherigen Buttons.

Ich habe revalidate() kombiniert mit repaint(). ich hatte auch schon invalidate und validate getrennt. Ich komme seit 6 Stunden einfach nicht weiter.

Ich vermute ist ein typische Anfängerfehler aber ich komme nicht darauf!

Ich hoffe ihr HILFT mir. ;(

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class spielerei 
extends JFrame
implements ActionListener
{
	private static final long serialVersionUID = 1L;
	Container cp;
	JPanel part1, part2, part3;
	JButton reihe1, reihe2, reihe3, reihe4, reihe5, reihe6, reihe7;
	
	public spielerei()
	{
		super("spielen");
		addWindowListener(new WindowsClosingAdapter(true));
		setLocation(100,100);
		setSize(1000,800);
		
		this.cp = getContentPane();
		this.cp.setLayout(new BorderLayout());
		
		this.part1 = new JPanel();
		this.reihe1 = new JButton("Lokale Spiele");
		this.reihe1.addActionListener(this);
		this.reihe2 = new JButton("Online Spiele");
		this.reihe2.addActionListener(this);
		this.part1.add(this.reihe1);
		this.part1.add(this.reihe2);
		
		cp.add(part1, BorderLayout.WEST);	
	}
	
	public void actionPerformed(ActionEvent event)
	{
		String cmd = event.getActionCommand();
		if (cmd.equals("Lokale Spiele")){
			this.part2 = new JPanel();
			this.reihe3 = new JButton("Spiel 501");
			this.reihe4 = new JButton("Spiel 701");
			this.part2.add(this.reihe3);
			this.part2.add(this.reihe4);
			this.cp.add(this.part2, BorderLayout.CENTER);
			this.part2.revalidate();
			this.part2.repaint();
		}
		if (cmd.equals("Online Spiele")){
			this.part3 = new JPanel();
			this.reihe5 = new JButton("Online 501");
			this.reihe6 = new JButton("Online 701");
			this.reihe7 = new JButton("Online 901");
			this.part3.add(this.reihe5);
			this.part3.add(this.reihe6);
			this.part3.add(this.reihe7);
			this.cp.add(this.part3, BorderLayout.CENTER);
			this.part3.revalidate();
			this.part3.repaint();
		}
		
	}
	public static void main(String[] args) {
		spielerei neu = new spielerei();
		neu.setVisible(true);
	}
}

Vielen Dank schon mal im Voraus
 
A

A0027301

Gast
Vielleicht solltest du die Button auch wieder löschen, bevor du neue anzeigst...

removeAll();
oder
remove(....);

Oder die Panels nur mit setVisible nur ein- und ausblenden..
 

Onliner

Mitglied
also wenn ich nun nach dem validate() eine remoteAll(); einsetze sind die Button wirklich verschwunden das repaint() ist unötig gewesen.

Aber nun habe ich das Problem das wenn ich das remoteAll() einsetze und es aber nichts zu entfernen gibt er eine Ausnahme aus.

Wie kann ich nun prüfen ob überhaupt was in dem JPanel (in meinen Beispiel = panel2 oder panel3) integriert ist.
so nach dem Motto nur wenn vorhanden dann entfernen?
 
Zuletzt bearbeitet:

Onliner

Mitglied
Hallo

ich habe das Problem selbst gelöst und hier der funktionierende code

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class spielerei 
extends JFrame
implements ActionListener
{
	private static final long serialVersionUID = 1L;
	Container cp;
	JPanel part1;
	JPanel part2 = new JPanel();
	JButton reihe1, reihe2, reihe3, reihe4, reihe5, reihe6, reihe7;
	
	public spielerei()
	{
		super("spielen");
		addWindowListener(new WindowsClosingAdapter(true));
		setLocation(100,100);
		setSize(1000,800);
		
		this.cp = getContentPane();
		this.cp.setLayout(new BorderLayout());
		
		this.part1 = new JPanel();
		this.reihe1 = new JButton("Lokale Spiele");
		this.reihe1.addActionListener(this);
		this.reihe2 = new JButton("Online Spiele");
		this.reihe2.addActionListener(this);
		this.part1.add(this.reihe1);
		this.part1.add(this.reihe2);
		
		cp.add(part1, BorderLayout.WEST);	
	}
	
	public void actionPerformed(ActionEvent event)
	{
		String cmd = event.getActionCommand();
		this.part2.removeAll();
		
		if (cmd.equals("Lokale Spiele")){
			
			this.reihe3 = new JButton("Spiel 501");
			this.reihe4 = new JButton("Spiel 701");
			this.part2.add(this.reihe3);
			this.part2.add(this.reihe4);
			this.cp.add(this.part2, BorderLayout.CENTER);
			this.part2.revalidate();
			this.part2.repaint();
			
		}
		if (cmd.equals("Online Spiele")){
			
			this.reihe5 = new JButton("Online 501");
			this.reihe6 = new JButton("Online 701");
			this.reihe7 = new JButton("Online 901");
			this.part2.add(this.reihe5);
			this.part2.add(this.reihe6);
			this.part2.add(this.reihe7);
			this.cp.add(this.part2, BorderLayout.CENTER);
			this.part2.revalidate();
			this.part2.repaint();
		}
		
	}
	public static void main(String[] args) {
		spielerei neu = new spielerei();
		neu.setVisible(true);
	}
}

Ich habe die JPanel part2 im ausserhalb deklariert und bei einer Aktion wird der part2 mit removeAll geleert und anschließend nach der jeweiligen Aktion wieder gefüllt und mit revalidate() den Neuaufbau mittgeteilt und repaint() alle vorherigen Spuren verwischt.

Danke dir A0027301.

grüße aus dem Schwarzwald
 

Antoras

Top Contributor
Das ist totaler Mumpitz. Benutz z.B. das CardLayout um zwischen den Ebenen hin und her zu wechseln.

Bei jeder Aktion die alten Komponenten löschen und die Neuen wieder aufbauen ist ineffizient und alles andere als ressourcensparend.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
B JButton Search AWT, Swing, JavaFX & SWT 8
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
N Erlennen ob JButton gedrückt ist AWT, Swing, JavaFX & SWT 6
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Swing Kann man auf JButton zeichenen AWT, Swing, JavaFX & SWT 3
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
U Swing JButton mit Icon AWT, Swing, JavaFX & SWT 7
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
A Swing JButton mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 6
F Swing Scrollbare Liste von JButton AWT, Swing, JavaFX & SWT 4
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
A Swing JButton aussehen AWT, Swing, JavaFX & SWT 12
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower Variable setzten mit JButton AWT, Swing, JavaFX & SWT 5
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
Joker4632 JButton nicht sichtbar, aber funktionsfähig AWT, Swing, JavaFX & SWT 8
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
D JButton per Tastenkombi auswählen AWT, Swing, JavaFX & SWT 2
K JButton nicht sichtbar machen für User 2 AWT, Swing, JavaFX & SWT 4
L Swing JButton soll link öffnen AWT, Swing, JavaFX & SWT 1
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
B JButton -> Rahmen wegbekommen AWT, Swing, JavaFX & SWT 7
N JButton über benutzerdefinierte paintComponent setzen AWT, Swing, JavaFX & SWT 3
B JButton erscheint in JFrame, obwohl er diesem nicht zugeordnet wurde! AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
M Textfarbe JButton verändern AWT, Swing, JavaFX & SWT 2
N JButton ausblenden AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
C Swing JButton wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
stylegangsta MouseEvents aus JButton aufrufen AWT, Swing, JavaFX & SWT 3
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
L JButton mit Image AWT, Swing, JavaFX & SWT 5
fLooojava JButton [Focus) AWT, Swing, JavaFX & SWT 4
M JButton - Listener AWT, Swing, JavaFX & SWT 1
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
1 JButton nach Klick ausblenden AWT, Swing, JavaFX & SWT 6
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
J JButton neu zeichnen lassen AWT, Swing, JavaFX & SWT 9
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
J vocab1 = new JButton(""+voc1.get(nr).toString()+""); AWT, Swing, JavaFX & SWT 16
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
BRoll JButton Text nicht ausblenden ("...") AWT, Swing, JavaFX & SWT 2
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
J Swing JFrame slideout, wenn JButton gedrückt wurde AWT, Swing, JavaFX & SWT 0
S Swing Rückmeldung für JButton AWT, Swing, JavaFX & SWT 4
R AWT JLabel oder JButton aktualisieren AWT, Swing, JavaFX & SWT 1
L JButton im Frame fest verankern AWT, Swing, JavaFX & SWT 0
M Swing Mix JComboBox - JButton? AWT, Swing, JavaFX & SWT 6
U Event Handling JButton Actionevent: starte Spiel AWT, Swing, JavaFX & SWT 4
E JButton füllt ganzes JPanel auf AWT, Swing, JavaFX & SWT 6
P Verbuggte custom JButton unter Windows AWT, Swing, JavaFX & SWT 9
W Swing JButton lässt sich nicht anzeigen AWT, Swing, JavaFX & SWT 8
Kandum Swing JButton - onclick -> Grafikfehler AWT, Swing, JavaFX & SWT 2
R JButton durch Enter auslösen AWT, Swing, JavaFX & SWT 7
T Swing JButton per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 5
M Problem mit FlowLayout, JLabel und JButton AWT, Swing, JavaFX & SWT 4
M JButton wird von JTree überdeckt AWT, Swing, JavaFX & SWT 4
D Swing JButton.setenabled(true) funktioniert nicht AWT, Swing, JavaFX & SWT 12
B JButton ausblenden AWT, Swing, JavaFX & SWT 12
G JButton deaktivieren greift nicht AWT, Swing, JavaFX & SWT 14

Ähnliche Java Themen

Neue Themen


Oben