Ich möchte mein Hintergrundbild ganz unten in diesem Rahmen, und den Knopf an der Spitze. Der unten beschriebene Code funktioniert jedoch nicht. Kann jemand sehen, wo die Probleme sind?Wie setze ich mein Hintergrundbild unten
Eine andere Sache ist, dass, obwohl ich den Speicherort für meine Schaltfläche festlegen, es in der Mitte oben auf dem Rahmen angezeigt wird.
Bitte ignorieren Sie die Kommentarzeilen. (Ich war nur raten, und die Hoffnung, sie wird funktionieren, aber sie tun es nicht offenbar.)
public class Menu extends JFrame{
private JLayeredPane pane;
private JLayeredPane pane2;
public Menu(){
final JFrame f = new JFrame("Chinese Chess");
JButton play = new JButton("Play vs. AI");
f.setLayout(new FlowLayout());
f.setLocationRelativeTo(null);
f.setSize(800, 800);
f.setVisible(true);
f.setResizable(false);
//f.pack();
pane = new JLayeredPane();
pane2 = new JLayeredPane();
f.add(pane);
f.add(pane2);
//background image
JLabel background = new JLabel(new ImageIcon("res/img/background.png"));
background.setLocation(0, 0);
background.setSize(800, 800);
pane.add(background, JLayeredPane.FRAME_CONTENT_LAYER);
pane2.add(play, JLayeredPane.DEFAULT_LAYER);
//pane.moveToBack();
//button PlayAI
play.setLocation(500,500);
play.setPreferredSize(new Dimension(100,50));
//f.setLayout(new FlowLayout());
//frame menu
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//f.getContentPane().add(play);
play.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
new PlayAI();
}
});
}
public static void main(String[] args){
new Menu();
}
Vielen Dank! Es hilft wirklich bei den Erklärungen. Bitte geben Sie mir etwas Zeit, um meinen Code zu ändern, und ich werde Ihnen später einige Rückmeldungen [email protected] –
Warum setzen Sie bgImage = null? @HovercraftFullOfEels –
@AnthonyZhang: weil ich dem bgImage kein BufferedImage zuteile, wo ich die Variable deklariere - ich kann nicht, wie es unmöglich ist. Stattdessen weise ich es im Konstruktor zu (wie Sie sehen können). –