Hallo!
Ich will in einem kleinen JFrame ein Hintergrundbild festlegen. Mein Problem aber ist, dass das Teile des Hintergrundbildes erst angezeigt werden, sobald man einen Teil des Fensters außerhalb des Desktops schiebt:
http://www.imagebanana.com/view/qnc4todf/screen1.gif
http://www.imagebanana.com/view/v04k7cbt/screen2.gif
Desweiteren wird der Login-Button ausgeblendet, sobald sich das Bild darüber befindet. Wenn man jedoch mit dem Mauszeiger über die Stelle des Buttons fährt, erscheint er wieder.
Außerdem werden den Labels die zugewiesenen Fonts nicht angezeigt.
Quellcode:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
public class frame extends JFrame {
// Anfang Attribute
private JButton login = new JButton();
private TextField accpass = new TextField();
private TextField accname = new TextField();
private Label acc = new Label();
private Label pass = new Label();
Image img;
// Ende Attribute
public frame(String title) {
// Frame-Initialisierung
super("…");
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 1024;
int frameHeight = 768;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
login.setBounds(384, 440, 209, 41);
login.setText(„LOGIN“);
login.setMargin(new Insets(2, 2, 2, 2));
login.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
login_ActionPerformed(evt);
}
});
login.setFont(new Font(„Aniron“, Font.PLAIN, 13));
cp.add(login);
accpass.setBounds(384, 392, 209, 32);
accpass.setText("");
accpass.setFont(new Font(„MS Sans Serif“, Font.PLAIN, 17));
cp.add(accpass);
accname.setBounds(384, 320, 209, 32);
accname.setText("");
accname.setFont(new Font(„MS Sans Serif“, Font.PLAIN, 17));
cp.add(accname);
acc.setBounds(384, 272, 190, 39);
acc.setText(„Accountname:“);
acc.setFont(new Font(„Aniron“, Font.PLAIN, 17));
cp.add(acc);
pass.setBounds(384, 352, 150, 39);
pass.setText(„Passwort:“);
pass.setFont(new Font(„Aniron“, Font.PLAIN, 17));
cp.add(pass);
img = Toolkit.getDefaultToolkit().createImage(„title.jpg“);
// Ende Komponenten
setResizable(false);
setVisible(true);
}
public void paint(Graphics g)
{
g.drawImage(img, 0, 0, null);
}
// Anfang Methoden
public void login_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
}
// Ende Methoden
public static void main(String[] args) {
new frame(„frame“);
}
}
_______________________________________
Danke schonmal für jede hilfreiche Antwort.
PS: Bin noch Anfänger im Bereich JFrame