gpt4 book ai didi

java - GIF 作为 JFrame 的背景

转载 作者:行者123 更新时间:2023-12-02 03:26:47 25 4
gpt4 key购买 nike

我正在做一个数学游戏,想要使用 gif 作为背景。其尺寸为1100*800

我搜索了很多帖子如何添加 GIF 作为背景,但没有成功。有关简单方法的任何建议(如果使用其他组件 -JPanel,...;您能说明如何操作吗?)

到目前为止,这是我的 JFrame 代码:

public class Game extends JFrame implements ActionListener {
private JButton play, endG, tutorial, login, easy, medium, hard, next, checkAnswer;
private JTextArea answer;
int total, goodAnswer = 0;

public Game(String heading) {
super(heading);
this.setSize(1100, 800);
this.setLayout(null);


firstScreen();
setResizable(false);

}

public void firstScreen() {
getContentPane().removeAll();

play = new JButton();
play.setBounds(373, 350, 354, 80);
play.setIcon(new ImageIcon("entrancePlayButton.png"));
play.addActionListener(this);
play.setOpaque(false);
play.setContentAreaFilled(false);
add(play);

tutorial = new JButton("Tutorial");
tutorial.setBounds(345, 520, 150, 50);
tutorial.setFont(new Font("Arial", Font.PLAIN, 20));
tutorial.addActionListener(this);
tutorial.setOpaque(false);
tutorial.setContentAreaFilled(false);
add(tutorial);

endG = new JButton("End Game");
endG.setBounds(605, 520, 150, 50);
endG.setFont(new Font("Arial", Font.PLAIN, 20));
endG.addActionListener(this);
endG.setOpaque(false);
endG.setContentAreaFilled(false);
add(endG);

revalidate();
repaint();
}

public void difficultyScreen() {
getContentPane().removeAll();

easy = new JButton("Easy");
easy.setBounds(450, 310, 200, 80);
easy.setFont(new Font("Arial", Font.PLAIN, 30));
easy.addActionListener(this);
easy.setOpaque(false);
easy.setContentAreaFilled(false);
add(easy);

medium = new JButton("Medium");
medium.setBounds(450, 440, 200, 80);
medium.setFont(new Font("Arial", Font.PLAIN, 30));
medium.addActionListener(this);
medium.setOpaque(false);
medium.setContentAreaFilled(false);
add(medium);

hard = new JButton("Hard");
hard.setBounds(450, 570, 200, 80);
hard.setFont(new Font("Arial", Font.PLAIN, 30));
hard.addActionListener(this);
hard.setOpaque(false);
hard.setContentAreaFilled(false);
add(hard);

endG = new JButton("Exit");
endG.setBounds(1000, 700, 60, 30);
endG.setFont(new Font("Arial", Font.PLAIN, 15));
endG.addActionListener(this);
endG.setOpaque(false);
endG.setContentAreaFilled(false);
add(endG);

revalidate();
repaint();
}

public void playGameScreen() {
getContentPane().removeAll();



revalidate();
repaint();
}

public void tutorialScreen() {
getContentPane().removeAll();



revalidate();
repaint();
}

private static double stringToDouble(String number) {
double num = Double.parseDouble(number);
return num;
}

public static void main() {
Game areaGame = new Game("Area Game");
areaGame.setVisible(true);
}

public void actionPerformed(ActionEvent actionEvent) {
if (actionEvent.getSource() == play) {
difficultyScreen();
}

if (actionEvent.getSource() == tutorial) {
tutorialScreen();
}

if (actionEvent.getSource() == endG) {
int reply = JOptionPane.showConfirmDialog(null, "You are about to exit the game, are you sure?", "Exit game", JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION) {
System.exit(0);
}

}

}


}

最佳答案

有两种方法可以做到这一点:

  • 您可以重写 JPanelpaintComponent() 方法。像这样:

@覆盖

protected void paintComponent(Graphics g) {

super.paintComponent(g);
g.drawImage(yourImage, 0, 0, this);

}
  • 或者您可以使用 JLabel,将图像加载为 ImageIcon,然后将其显示在 JLabel 中。

关于java - GIF 作为 JFrame 的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38740219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com