JButtons in einem JPanel erscheinen nicht direkt

Status
Nicht offen für weitere Antworten.

SabineMA

Mitglied
Hallo nochmal!

Ich bin nach wie vor, dabei meine Mischung von AWT und Swing zu entfernen, so dass ich wo es geht nur noch Swing-Elemente hab.

Nun zeichne ich in einem JFrame mit der Paint-Methode und hab noch ein Panel mit ein paar Buttons und einem Label.
Leider erscheinen die Buttons erst wenn ich mit der Maus drüber fahre, das Label erscheint erst nach dem ersten Repaint-Aufruf.

Woran kann das liegen?

Liebe Grüße, Sabine

Hier mal der Code...

Code:
package masterMind.gui;

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

import masterMind.*;

public class GuiMain extends JFrame implements ActionListener {

	private MasterMind mm;

	private int crrntPeg;

	private Interpretation[] interpretations;

	private boolean showSolving = false, solved = false;

	private Peg peg1, peg2, peg3, peg4, peg5, peg6;

	private Peg pegWhite, pegBlack;

	private JButton btnHelp, btnInfo, btnSolve, btnNewGame, btnInterpret;

	private JLabel status;
	
	
	public GuiMain(MasterMind mm) {

		JPanel p;
		
		this.mm = mm;
		this.interpretations = new Interpretation[8];

		//Fensterposition
		this.setTitle("MasterMind");
		this.setSize(370, 500);
		this.setResizable(false);
		this.setLocationRelativeTo(null);
		
		this.getContentPane().setLayout(null);
		this.setBackground(new Color(230, 220, 250));

		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		this.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				auswertungClick(e);
			}
		});

		this.setFont(new Font("Arial", Font.BOLD, 12));

		p = new JPanel();
		p.setLayout(null);
		p.setBounds(220, 216, 123, 205);
		p.setBackground(this.getBackground());

		status = new JLabel(mm.getCrrntTurn() + ". Versuch");
		status.setHorizontalAlignment(JLabel.CENTER);
		status.setBounds(0, 0, 123, 25);
		status.setVisible(true);
		p.add(status);

		btnHelp = new JButton("Hilfe");
		btnHelp.setBounds(0, 40, 123, 25);
		btnHelp.addActionListener(this);
		p.add(btnHelp);

                                /*
                                Hier sind noch ein paar Buttons...
                                */
	
		this.getContentPane().add(p);
		this.setVisible(true);
	}

	public void paint(Graphics g) {
                    /*
                    Hier steht noch was drin.
                    */

	}

                /*
                Hier sind noch ein paar Methoden
                */
    
	private void auswertungClick(MouseEvent e) {
                    /*
                    Hier steht noch was drin.
                    */
                    this.repaint();
	}


	public void actionPerformed(ActionEvent e) {

                                if (e.getSource() == this.btnInterpret) {

			/*
                                                Hier ist noch etwas Code
                                                */

			this.repaint();

			//Lösung anzeigen
		} 	
                }
}
 
R

Roar

Gast
überschreibe anstatt paint() die methode paintComponent(Graphics) und vergiss nicht super.paitnComponent() dort als erstes aufzurufen.
 

SabineMA

Mitglied
Vielen Dank! Das Panel + Inhalt werden jetzt direkt gezeichnet. Dafür wird aber alles, was in der PaintComponent-Methode gezeichnet werden sollte, nicht mehr gezeichnet... :)
 
R

Roar

Gast
sicher dass du die methode richtig überschrieben hast? die methodensignatur muss so aussehen: "public void paintComponent(Graphics kartoffelsalat)"
richtig geschrieben?
 

SabineMA

Mitglied
public void paintComponent(Graphics g)

so hab ichs geschrieben. hab mittlerweile auch meine repaints durch

this.paintComponent(this.getGraphics());

ersetzt.
aber das klappt nicht 100%ig. wenn ich das fenster minimiere und dann wieder maximiere ist wieder alles weg. es wird wohl nicht automatisch gezeichnet?

und wenn ich auf nen button klick, durch den alles neu gezeichnet werden soll (wieder mit this.paintComponent(this.getGraphics());) dann braucht das ewig und flackert.
 

Icewind

Bekanntes Mitglied
ja gegen das flackern solltest du dich mal mit double buffering auseinander setzten...
bzw wärs eh schöner wenn du eine eigene klasse die von JPanel erbt nur für die zeichenarbeit zuständig ist, in diesem panel wird dann nur gezeichnet und es sind keine buttons etc vorhanden...
 

SabineMA

Mitglied
das mit dem flackern ist noch nicht mal das schlimme. es ist "nur" ein projekt fürs studium.
aber das nicht automatisch neu gezeichnet wird beim minimieren/maximieren, bzw. wenn das fenster überdeckt und wieder freigelegt wird, ist blöd.

auch wenn ich die gui starte, wird erstmal nichts gezeichnet. erst nach dem ersten aufruf von

this.paintComponent(this.getGraphics());

wird gezeichnet.
 

SabineMA

Mitglied
Ok, nach vielem hin und her, habe ich mein Problem wie folgt gelöst:

Ich hab eine neue Klasse, die von JPanel abgeleitet ist erstellt und zeichne hier mit der paintComponent(Graphics g).

In meiner bisherigen Klasse habe ich die Buttons etc. aus dem Panel rausgenommen und direkt im JFrame platziert. Zusätzlich adde ich hier ein Objekt der neuen von JPanel abgeleiteten Klasse.

Grüße, Sabine
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Java_RY wie kann ich auf JButtons in einem JPanel zugreifen AWT, Swing, JavaFX & SWT 3
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
H Auswahlmenü mit JButtons AWT, Swing, JavaFX & SWT 4
H JButtons werden nicht angezeigt AWT, Swing, JavaFX & SWT 5
A Swing Meine JButtons werden nicht angezeigt bitte helft mir AWT, Swing, JavaFX & SWT 2
N "Automatisches" erstellen von jButtons AWT, Swing, JavaFX & SWT 1
F JButtons neu laden AWT, Swing, JavaFX & SWT 4
N Swing JButtons werden nach repaint() doppelt dargestellt AWT, Swing, JavaFX & SWT 12
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
S JButtons an Koordinaten setzen AWT, Swing, JavaFX & SWT 3
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
M Swing Selbstanordnende JButtons AWT, Swing, JavaFX & SWT 4
J EventHandler Bei JButtons AWT, Swing, JavaFX & SWT 2
L Swing Variable Anzahl an JButtons AWT, Swing, JavaFX & SWT 7
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
A JTextField und JButtons AWT, Swing, JavaFX & SWT 2
F JButtons erstellen lassen mit unterschiedlichen Funktionen AWT, Swing, JavaFX & SWT 3
M JLabel über JButtons zeichnen AWT, Swing, JavaFX & SWT 4
Kenan89 LayoutManager JPanel wächst beim adden neuer JButtons nicht mit AWT, Swing, JavaFX & SWT 4
A JButtons - es wird beim falschen Button die Hintergrundfarbe angepasst AWT, Swing, JavaFX & SWT 2
Z kleine JButtons und ihre Beschriftung AWT, Swing, JavaFX & SWT 5
K Swing Abgerundete JButtons AWT, Swing, JavaFX & SWT 8
Tsuna JButtons in Apple-Design AWT, Swing, JavaFX & SWT 4
J JButtons in aktivieren und deaktivieren AWT, Swing, JavaFX & SWT 3
T JButtons indexiert unter NetBeans anlegen AWT, Swing, JavaFX & SWT 7
H JButtons in JTable anzeigen AWT, Swing, JavaFX & SWT 5
T Maximale Länge eines JButtons AWT, Swing, JavaFX & SWT 5
K JButtons innerhalb eines JPanels verschieben (DRAG&DROP) AWT, Swing, JavaFX & SWT 5
R Swing Verschieben eines jButtons mittels MouseDragged AWT, Swing, JavaFX & SWT 4
K Runde JButtons ? AWT, Swing, JavaFX & SWT 7
B Swing JButtons in eine Arraylist<JButton> einfügen AWT, Swing, JavaFX & SWT 2
G Swing JButtons + ActionListener + final AWT, Swing, JavaFX & SWT 3
U Problem mit JButtons AWT, Swing, JavaFX & SWT 6
C Interface für JButtons,... AWT, Swing, JavaFX & SWT 7
J Swing JButtons und die ActionEvents AWT, Swing, JavaFX & SWT 2
P JButtons haben nicht immer lust zu erscheinen AWT, Swing, JavaFX & SWT 9
U Grafikkontext unter JButtons? AWT, Swing, JavaFX & SWT 5
Strahlungsleck Funktionalität von JButtons (Actionlistener etc.) AWT, Swing, JavaFX & SWT 17
G Sehr kleine JButtons mit Icon oder Beschriftung AWT, Swing, JavaFX & SWT 2
F Sender für jButtons? AWT, Swing, JavaFX & SWT 2
M ich will die alten "alte JButtons"wieder haben AWT, Swing, JavaFX & SWT 6
J JButtons in Tabellenspalten anzeigen AWT, Swing, JavaFX & SWT 2
J JScrollBar scroll-Verhalten auf 2 JButtons umleiten? AWT, Swing, JavaFX & SWT 2
N Minesweeper: 2D Feld von JButtons anlegen AWT, Swing, JavaFX & SWT 19
F Wie Oberfläche verbessern? (JButtons, Textfeld verkleinern) AWT, Swing, JavaFX & SWT 5
U Bilder, JLabels, JButtons voreinander AWT, Swing, JavaFX & SWT 7
D Darstellungsprobleme bei JButtons auf JInternalFrames AWT, Swing, JavaFX & SWT 4
A Hintergrundfrabe eines JButtons innerhalb eines JToolBar AWT, Swing, JavaFX & SWT 4
T Ausrichtung eines Jbuttons AWT, Swing, JavaFX & SWT 6
S JButtons Größe AWT, Swing, JavaFX & SWT 15
M JButtons immer gleiche Größe? AWT, Swing, JavaFX & SWT 8
H Unsichtbare JButtons? AWT, Swing, JavaFX & SWT 5
C JComboBox mit JButtons befüllen AWT, Swing, JavaFX & SWT 8
1 Warum sind JButtons viel breiter als der enthaltene Text ? AWT, Swing, JavaFX & SWT 4
S Text eines JButtons vertikal schreiben AWT, Swing, JavaFX & SWT 5
L-ectron-X Den Text eines JButtons unter das Icon setzen? AWT, Swing, JavaFX & SWT 2
M JButtons in JScrollPanel darstellen AWT, Swing, JavaFX & SWT 6
G von JButtons erben, aber richtig! AWT, Swing, JavaFX & SWT 4
R JButtons werden nicht dargestellt AWT, Swing, JavaFX & SWT 7
G JButtons AWT, Swing, JavaFX & SWT 7
Z Problem mit Spielfläche aus JButtons AWT, Swing, JavaFX & SWT 2
H große mengen an jbuttons dynamisch erzeugen? AWT, Swing, JavaFX & SWT 15
G Icon eines JButtons ändern? AWT, Swing, JavaFX & SWT 7
M JButtons mit Linie verbinden AWT, Swing, JavaFX & SWT 4
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
S Swing zu einem Datum Tage addieren/subtrahieren AWT, Swing, JavaFX & SWT 6
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
2 JavaFX die ChoiceBox leitet den String nicht weiter oder es komm zu einem NullPointer AWT, Swing, JavaFX & SWT 8
L JavaFX javafx.fxml.LoadException bei einem Taschenrechner AWT, Swing, JavaFX & SWT 5
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
N Nur bei einem Textfiled Nullpointerexception bei getText() AWT, Swing, JavaFX & SWT 1
H JComobox in einem JPopupNeu AWT, Swing, JavaFX & SWT 7
P Button simpler random auf einem JPanel verteilen? AWT, Swing, JavaFX & SWT 3
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Mit einem Button einen anderen Button Triggern AWT, Swing, JavaFX & SWT 3
D AWT Wie kann ich ein Frame von einem anderen aus beeinflussen? AWT, Swing, JavaFX & SWT 7
T Setzen von der Schriftgröße bei einem Shell AWT, Swing, JavaFX & SWT 15
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
D JavaFX Ein Parameter von einem Stage(GUI) zu einem anderen übergeben AWT, Swing, JavaFX & SWT 6
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
ralfb1105 JavaFX Alert Confirmation Dialog aus einem Service Thread AWT, Swing, JavaFX & SWT 8
F JavaFX Aktuelle Zeit in einem TextField anzeigen AWT, Swing, JavaFX & SWT 7
M JavaFX Bild zur ImageView in einem Kreis anzeigen. AWT, Swing, JavaFX & SWT 4
F JavaFX PNG aus einem resource Ordner laden AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben