Hintergrundbild des JFrames lässt Textboxen verschwinden?

JensB

Mitglied
Hallo Leute,

ich habe ein kleines Problem. Ich habe eine Java-Klasse geschrieben die vom JFrame erbt, und die ein Hintergrundbild verwendet. Mein Code sieht so aus (unwichtige Stellen gekürzt):

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

public class Test extends JFrame implements ActionListener {

	private JButton los;
	private JTextField eingabe, ausgabe;
	
	public Test () {
	
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setContentPane(new LogoPanel("blah.jpg"));
	
		// absolute Positionierung
		setLayout(null);
		los = new JButton("Button");
		los.setBounds(100, 5, 128, 28);
		add(los);
		
		eingabe = new JTextField("blablabla");
		eingabe.setBounds(270, 5, 128, 28);
		add(eingabe);
				
		repaint();
		
		setVisible(true);
	
	}
	
	public static void main (String[] args) {
	
		Test t = new Test();
	
	}
	
	public void actionPerformed (ActionEvent e) {
		
		// ...
		
	}
	
}
LogoPanel.java:
Java:
import javax.swing.*;
import java.awt.*;

public class LogoPanel extends JPanel {

	// das Hintergrundbild
	private Image myImage;

	// Konstruktor lädt das Hintergrundbild
	public LogoPanel (String fileName) {
	
		myImage = new ImageIcon(fileName).getImage();
	
	}
	
	// zeichnet das Hintergrundbild
	public void paint (Graphics g) {
	
		// zeichne das Bild
		g.drawImage(myImage, 0, 0, this);

	}
	
}

Aber nach Ausfruf des Programms durch "java Test" sieht man das Hintergrundbild und den Button. Aber das Textfeld ist verschwunden. Erst wenn ich an die Stelle klicke, wo es sich befindet, wird es sichtbar. Woran liegt das? Könnte es an der absoluten Positiuonierung liegen?

Gruß
Jens
 

Illuvatar

Top Contributor
Bei JComponents: paintComponent, nicht paint überschreiben.
Und auf jeden Fall sollte man super.paint bzw. dann super.paintComponent aufrufen.
 

JensB

Mitglied
Hallo, wow, das ging ja schnell :)

Vielen Dank, das ist die Lösung. Wobei mich der Unterschied der beiden schon interessierern würde, da ich sie bisher immer synonym wahrgenommen habe. Liegt aber sicherlich daran dass ich früher mit AWT mehr gemacht habe, da hat man ja einfache Components.

Gruß
Jens
 

Illuvatar

Top Contributor
Im Endeffekt ist es so: Die paint-Methode von JComponent ruft nacheinander
paintComponent
paintBorder
paintChildren
auf. Wenn du jetzt also paint überschreibst (ohne super.paint aufzurufen), wird paintChildren nicht mehr aufgerufen.
Um die Komponente selbst zu malen, sollte also paintComponent überschrieben werden.

Edit: Bei AWT ist es so, dass das Betriebssystem den paintChildren-Teil übernimmt, und Borders gibts da sowieso nicht. Deshalb gibt es da keine solche Aufteilung.
 
Zuletzt bearbeitet:

JensB

Mitglied
Alles klar, ich danke :)

Aber eine weitere Frage: Ich selektiere den gesamten Inhalt des JTextField "eingabe" ja mit eingabe.selectAll();
Wenn ich das hier im Konstruktor stehen habe wird der Text jedoch nicht ausgewählt. Warum?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Hintergrundbild an Größe des JFrames anpassen AWT, Swing, JavaFX & SWT 4
T Hintergrundbild einfügen AWT, Swing, JavaFX & SWT 1
L Hintergrundbild im Fenster darstellen AWT, Swing, JavaFX & SWT 9
R Java, GUI, Hintergrundbild, Image, AWT, Swing, JavaFX & SWT 4
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
snipesss Hintergrundbild in JOptionPane.showInputDialog? AWT, Swing, JavaFX & SWT 4
M Hintergrundbild wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
L [Slick2d] Sidescroller/Hintergrundbild sehr langsam AWT, Swing, JavaFX & SWT 3
O Vollbildmodus mit Hintergrundbild AWT, Swing, JavaFX & SWT 8
A jpanel mit gridbaglayout auf hintergrundbild AWT, Swing, JavaFX & SWT 7
Mr. Pink AWT Anzeigeproblem JPanel/Hintergrundbild AWT, Swing, JavaFX & SWT 1
H Swing Hintergrundbild in einen JFrame einfügen AWT, Swing, JavaFX & SWT 7
T Hintergrundbild in JTextPane fixieren AWT, Swing, JavaFX & SWT 2
M Auf einem Hintergrundbild zeichnen AWT, Swing, JavaFX & SWT 2
SexyPenny90 Hintergrundbild mit Swing AWT, Swing, JavaFX & SWT 3
C Eigenes Hintergrundbild einfügen AWT, Swing, JavaFX & SWT 6
P AWT Hintergrundbild in Hauptframe AWT, Swing, JavaFX & SWT 3
J Hintergrundbild für JFrame AWT, Swing, JavaFX & SWT 6
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
F Hintergrundbild im Frame AWT, Swing, JavaFX & SWT 11
H Hintergrundbild in jTextArea AWT, Swing, JavaFX & SWT 4
N AWT Hintergrundbild AWT, Swing, JavaFX & SWT 2
R 2D-Grafik Hintergrundbild für JFrame AWT, Swing, JavaFX & SWT 4
E JButton mit hintergrundbild AWT, Swing, JavaFX & SWT 4
J Swing Hintergrundbild auf einem JFrame AWT, Swing, JavaFX & SWT 7
G Swing Komponenten dem Hintergrundbild des JPanels anpassen? AWT, Swing, JavaFX & SWT 6
B Wie ein Hintergrundbild einfügen??? AWT, Swing, JavaFX & SWT 18
I JPanel mit Hintergrundbild, setOpaque AWT, Swing, JavaFX & SWT 10
C Label Hintergrundbild mit Text AWT, Swing, JavaFX & SWT 6
S Applet - Aerger mit dem Hintergrundbild - JLabel und JTextfield AWT, Swing, JavaFX & SWT 7
F hintergrundbild für jtable als jscrollpane AWT, Swing, JavaFX & SWT 10
H hintergrundbild fixieren AWT, Swing, JavaFX & SWT 3
N Swing Hintergrundbild in einer JScrollpane AWT, Swing, JavaFX & SWT 2
dl85hej Hintergrundbild AWT, Swing, JavaFX & SWT 2
C JPanel mit Hintergrundbild AWT, Swing, JavaFX & SWT 30
U JList mit Hintergrundbild hinterlegen und noch ne Frage AWT, Swing, JavaFX & SWT 4
C Hintergrundbild ohne Repaint AWT, Swing, JavaFX & SWT 9
G Jpanel mit Hintergrundbild füllen? AWT, Swing, JavaFX & SWT 6
G 2x JPanel im JScrollPane (Hintergrundbild in JScrollPane) AWT, Swing, JavaFX & SWT 9
E JPanel mit Hintergrundbild AWT, Swing, JavaFX & SWT 10
hdi panel hintergrundbild falsch implementiert ? AWT, Swing, JavaFX & SWT 9
Kidao Das Hintergrundbild überdeckt die Swing-Komponente AWT, Swing, JavaFX & SWT 5
C JdesktopPane Hintergrundbild AWT, Swing, JavaFX & SWT 6
N Hintergrundbild setzen AWT, Swing, JavaFX & SWT 4
L Frame mit Hintergrundbild? AWT, Swing, JavaFX & SWT 4
S JTextPane mit Hintergrundbild AWT, Swing, JavaFX & SWT 9
K Hintergrundbild an JFrame anpassen AWT, Swing, JavaFX & SWT 9
U bewegtes Hintergrundbild AWT, Swing, JavaFX & SWT 2
G Hintergrundbild auf JFrame oder JPanel AWT, Swing, JavaFX & SWT 3
F Text besser lesbar über Hintergrundbild AWT, Swing, JavaFX & SWT 6
G Hintergrundbild für JPanel AWT, Swing, JavaFX & SWT 4
G Problem mit Menü/Button auf Hintergrundbild AWT, Swing, JavaFX & SWT 10
D JTable - Hintergrundbild in Cell AWT, Swing, JavaFX & SWT 6
M Hintergrundbild und grafischer Button (Transparenz Probleme) AWT, Swing, JavaFX & SWT 3
H Hintergrundbild im Panel verschwindet sofort AWT, Swing, JavaFX & SWT 6
B Problem mit Hintergrundbild AWT, Swing, JavaFX & SWT 12
I Hintergrundbild bei awt container AWT, Swing, JavaFX & SWT 9
E hintergrundbild einfügen!! AWT, Swing, JavaFX & SWT 2
F Arrays in JFrames AWT, Swing, JavaFX & SWT 4
A Verständnisfragen im Umgang mit update() und JFrames AWT, Swing, JavaFX & SWT 5
P Aktualisierung von jLabel in jFrames AWT, Swing, JavaFX & SWT 8
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
O Swing Aufbau eines JFrames AWT, Swing, JavaFX & SWT 2
javampir Swing Wanderung eines JFrames AWT, Swing, JavaFX & SWT 7
U WYSIWYG Text-Editor für JFrames AWT, Swing, JavaFX & SWT 8
B Event Handling Mausbewegung auch außerhalb eines JFrames registrieren AWT, Swing, JavaFX & SWT 2
A Probleme mit 2 JFrames in einem Programm AWT, Swing, JavaFX & SWT 7
B Größer-/Kleinerziehen eines JFrames/JPanels erkennen AWT, Swing, JavaFX & SWT 2
K Swing Wann benötigt man JFrames? AWT, Swing, JavaFX & SWT 5
J 2D-Grafik JPanel wird erst 1-2sek nach start des JFrames angezeigt AWT, Swing, JavaFX & SWT 3
J Swing JFrames positionieren AWT, Swing, JavaFX & SWT 4
J Alle Komponenten eines JFrames durchlaufen AWT, Swing, JavaFX & SWT 2
J JFrames und Datenübergabe AWT, Swing, JavaFX & SWT 3
U feste Größe für den Zeichenbereich eines JFrames AWT, Swing, JavaFX & SWT 4
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
K beim Schließen des JFrames, Methode aufrufen AWT, Swing, JavaFX & SWT 3
P JFrames verbinden AWT, Swing, JavaFX & SWT 9
0 JPanel nicht an größe des JFrames anpassen AWT, Swing, JavaFX & SWT 3
G FullScreen JFrames wechseln AWT, Swing, JavaFX & SWT 2
xehpuk Swing Resizen eines JFrames nur relativ zulassen AWT, Swing, JavaFX & SWT 5
O Swing Inhalt des JFrames wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
S auf einem mit Netbeans (GUI) erstellten JPanel (eines JFrames) zeichnen? AWT, Swing, JavaFX & SWT 7
F 2D-Grafik Problem mit höhe||breite eines JFrames AWT, Swing, JavaFX & SWT 4
W Look and Feel für einzelnde JFrames AWT, Swing, JavaFX & SWT 4
C Swing Problem beim 2. Öffnen eines JFrames AWT, Swing, JavaFX & SWT 9
A JFrames ausgestalten AWT, Swing, JavaFX & SWT 3
N Swing JFrames aneinander docken AWT, Swing, JavaFX & SWT 2
J Swing setLocation Aufruf in JApplets 20 mal langsamer als in JFrames AWT, Swing, JavaFX & SWT 8
H Z-Order von JPanels in JFrames AWT, Swing, JavaFX & SWT 2
A Größe eines JFrames immer nur quadratisch AWT, Swing, JavaFX & SWT 8
J Swing Eine(und zwar ein und die selbe) WindowListener Instanz für alle JFrames AWT, Swing, JavaFX & SWT 8
J Swing Alle JFrames AWT, Swing, JavaFX & SWT 18
X JFrames auf Bildschirmgröße maximieren. Ohne diese Symbolleiste AWT, Swing, JavaFX & SWT 4
E Swing Zugriff auf Attribute eines JFrames über einen JDialog AWT, Swing, JavaFX & SWT 2
GambaJo Farbe eines JFrames AWT, Swing, JavaFX & SWT 2
R Gelöst: panelGrösse innerhalb eines JFrames AWT, Swing, JavaFX & SWT 7
T Kommunikation zwischen zwei jFrames AWT, Swing, JavaFX & SWT 4
SebSnake JFrames und KeyListener AWT, Swing, JavaFX & SWT 18
G Datenaustausch zwischen zwei JFrames AWT, Swing, JavaFX & SWT 3
T Minimieren und Maximieren eines JFrames verhindern AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben