Hi Community,
ich bin gerade dabei ein Programm zu schreiben. Ich möchte gerne ein bild in einem JPanel laden lassen aber das funktioniert leider nicht so richtig ;( . Wenn ich das JFrame minimiere und wieder maximiere ist zwar das bild da aber die JButtons auf dem JPanel sind oben in der Mitte auf dem JPanel. hat vielleicht jemand eine Ahnung woran das liegen könnte?
Hier der Code:
Ich hoffe ihr könnt mir helfen.
Danke im voraus
TheCubeCrafter
ich bin gerade dabei ein Programm zu schreiben. Ich möchte gerne ein bild in einem JPanel laden lassen aber das funktioniert leider nicht so richtig ;( . Wenn ich das JFrame minimiere und wieder maximiere ist zwar das bild da aber die JButtons auf dem JPanel sind oben in der Mitte auf dem JPanel. hat vielleicht jemand eine Ahnung woran das liegen könnte?
Hier der Code:
Java:
package de.TheCubeCrafter.screen;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import de.TheCubeCrafter.Components.GUIPanel;
public class Menu{
final JButton btn_singleplayer = new JButton("Singelplayer");
final JButton btn_settings = new JButton("Settings");
final JButton btn_exit = new JButton("Exit");
// private static ImageIcon[] background = {new ImageIcon("images/Background.png")};
// final JLabel jl_background = new JLabel(background[0]);
private GUIPanel menu = new GUIPanel((Toolkit.getDefaultToolkit().getImage("images/Background.png")));
public Menu(){
// Image background = ImageIO.read(getClass().getResource("Background.png"));
ActionListener action = new ActionListener(){
@Override
public void actionPerformed(ActionEvent click) {
if(click.getSource() == btn_singleplayer){
remove();
new GameSettings();
}
else if(click.getSource() == btn_settings){
remove();
new Settings();
}
else if(click.getSource() == btn_exit){
System.exit(1);
}
}
};
// jl_background.setBounds(0, 0, 960, 540);
// Frame.frame.add(jl_background);
menu.setBounds(0, 0, 960, 540);
Frame.frame.add(menu);
btn_singleplayer.setBounds(355, 150, 250, 50);
btn_settings.setBounds(355, 250, 250, 50);
btn_exit.setBounds(355, 350, 250, 50);
btn_singleplayer.addActionListener(action);
btn_settings.addActionListener(action);
btn_exit.addActionListener(action);
menu.add(btn_singleplayer);
menu.add(btn_settings);
menu.add(btn_exit);
Frame.frame.repaint();
}
void remove(){
Frame.frame.remove(btn_singleplayer);
Frame.frame.remove(btn_settings);
Frame.frame.remove(btn_exit);
Frame.frame.repaint();
}
}
Java:
package de.TheCubeCrafter.Components;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
public class GUIPanel extends JPanel {
private static final long serialVersionUID = 1L;
private Image image;
public GUIPanel(Image image) {
this.image = image;
repaint();
}
public void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, null);
}
}
Ich hoffe ihr könnt mir helfen.
Danke im voraus
TheCubeCrafter
Zuletzt bearbeitet von einem Moderator: