G
Guest
Gast
Hey, und zwar werden die Buttons dort gesetzt, wo ich sie hinsetze, wenn ich
nicht aufrufe. Und wenn ich es aufrufe, dann reihen die sich einfach nebeneinander, und
platzieren sich nicht dort, wo sie sollen.
Was hat das Hintergrundbild damit zu tun? Ich muss dazu sagen, dass ich totaler Anfänger bin und den Code für
das Hintergrundbild, also die Klasse mit allem, einfach aus einem Forumsbeitrag kopiert habe
(Es funktioniert auch, aber es verschiebt eben die Buttons)
Code:
main.setContentPane(new BackGroundPane("menu.jpg"));
nicht aufrufe. Und wenn ich es aufrufe, dann reihen die sich einfach nebeneinander, und
platzieren sich nicht dort, wo sie sollen.
Was hat das Hintergrundbild damit zu tun? Ich muss dazu sagen, dass ich totaler Anfänger bin und den Code für
das Hintergrundbild, also die Klasse mit allem, einfach aus einem Forumsbeitrag kopiert habe
(Es funktioniert auch, aber es verschiebt eben die Buttons)
Code:
import javax.swing.*;
import java.awt.*;
public class Game{
public static void main(String[] args){
/* create the window */
JFrame main = new JFrame("mein Frame");
main.setLayout(null);
main.setSize(1024,768);
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main.setLocation(
(Toolkit.getDefaultToolkit().getScreenSize().width-
main.getSize().width) / 2,
(Toolkit.getDefaultToolkit().getScreenSize().height-
main.getSize().height) / 2);
/* set background picture for window */
main.setContentPane(new BackGroundPane("menu.jpg"));
/* create buttons */
AbstractButton startGame = new JButton();
startGame.setIcon(new ImageIcon( "icon/startGame.jpg" ));
startGame.setBounds(20,80,420,220);
AbstractButton showStats = new JButton();
showStats.setIcon(new ImageIcon( "icon/showStats.jpg" ));
showStats.setBounds(20,320,420,220);
AbstractButton exit = new JButton();
exit.setIcon(new ImageIcon( "icon/exit.jpg" ));
exit.setBounds(946,680,50,50);
/* create button rollover help text */
/* add and display */
main.add(startGame);
main.add(showStats);
main.add(exit);
main.setVisible(true);
}
}
class BackGroundPane extends JPanel{
Image img = null;
BackGroundPane(String imagefile) {
if (imagefile != null) {
MediaTracker mt = new MediaTracker(this);
img = Toolkit.getDefaultToolkit().getImage(imagefile);
mt.addImage(img, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img,0,0,this.getWidth(),this.getHeight(),this);
}
}