Hallo ,
Ich bin gerade dabei meine Java Kenntnisse zu erweitern und wollte mal eine vernünftige GUI Programmieren.
Leider sind Wunsch und Wirklichkeit weit voneinander Entfernt.
Habe jetzt schon seit Stunden in diversen Foren nachgelesen, aber ich begreife einfach nicht den Zusammenhang warum das von mir geplante nicht funktioniert.
Ich hoffe hier kann mir geholfen werden.
Also ich möchte ein Hintergrundbild (1024X768) in einem JFrame einbinden.
Dieses Hintergrundbild hat im oberen Bereich eine Überschrift und soll im Mittelbereich ein Aktionsfenster bekommen ca. (800x 600), in welchem hinterher andere Panels eingebunden werden sollen.
Das mit dem Hintergrundbild habe ich hinbekommen, aber sobald ich das Panel darüber einbinden will (im BorderLayout.CENTER) ist das ganze Frame voll mit dem Panel.
Hoffe ihr könnt mir Helfen, hier mal mein Code.
Gruß Stream
Ich bin gerade dabei meine Java Kenntnisse zu erweitern und wollte mal eine vernünftige GUI Programmieren.
Leider sind Wunsch und Wirklichkeit weit voneinander Entfernt.
Habe jetzt schon seit Stunden in diversen Foren nachgelesen, aber ich begreife einfach nicht den Zusammenhang warum das von mir geplante nicht funktioniert.
Ich hoffe hier kann mir geholfen werden.
Also ich möchte ein Hintergrundbild (1024X768) in einem JFrame einbinden.
Dieses Hintergrundbild hat im oberen Bereich eine Überschrift und soll im Mittelbereich ein Aktionsfenster bekommen ca. (800x 600), in welchem hinterher andere Panels eingebunden werden sollen.
Das mit dem Hintergrundbild habe ich hinbekommen, aber sobald ich das Panel darüber einbinden will (im BorderLayout.CENTER) ist das ganze Frame voll mit dem Panel.
Hoffe ihr könnt mir Helfen, hier mal mein Code.
Java:
public class HintergrundPanel extends JPanel {
private Image background;
public HintergrundPanel() {
try {
background = ImageIO.read(getClass().getResource("wok2.jpg"));
}
catch(IllegalArgumentException iae) {
JOptionPane.showMessageDialog(this, "Grafikdatei nicht gefunden!");
}
catch(IOException ioe) {
JOptionPane.showMessageDialog(this, "Fehler beim Einlesen der Grafikdatei!");
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(background != null) {
g.drawImage(background, 0, 0, this);
}
}
}
Java:
public class Main_Wokler {
public static void main(String[] args) {
JFrame f = new JFrame("WOKLER");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setPreferredSize(new Dimension(1040,800));
f.setLayout(new BorderLayout());
f.add(new HintergrundPanel());
JPanel jp1=new JPanel();
jp1.setLayout(new BorderLayout());
jp1.setOpaque(true);
f.add(jp1,BorderLayout.CENTER);
f.add(new JLabel(),BorderLayout.NORTH);
f.pack();
f.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width-f.getSize().width) / 2,
(Toolkit.getDefaultToolkit().getScreenSize().height-f.getSize().height) / 2);
f.setVisible(true);
}
}
Gruß Stream