Java 如何在JFrame中放置背景图像?
我正在尝试一点Java 如何在JFrame中放置背景图像?,java,image,swing,jframe,Java,Image,Swing,Jframe,我正在尝试一点JFrame,因为我必须进行flappy bird项目,而且我的代码中有一个bug 当我运行它时,它会在最大化窗口打开,但背景图片不会加载。我必须最小化窗口,然后将其最大化以使其工作 package com.company; import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File;
JFrame
,因为我必须进行flappy bird项目,而且我的代码中有一个bug
当我运行它时,它会在最大化窗口打开,但背景图片不会加载。我必须最小化窗口,然后将其最大化以使其工作
package com.company;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class Main extends JFrame{
JButton button;
JLabel text;
JFrame frame;
JPanel panel;
public static void main(String[] args) {
new Main();
}
public Main(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("flappyBird");
setLocationRelativeTo(null);
setVisible(true);
setSize(new Dimension(100,100));
setExtendedState(JFrame.MAXIMIZED_BOTH);
BufferedImage img = null;
try {
img = ImageIO.read(new File("C:\\Users\\m11\\Documents\\FlappyBird\\spirit\\base.png"));
} catch (IOException e) {
e.printStackTrace();
}
Image dimg = img.getScaledInstance(800, 508, Image.SCALE_SMOOTH);
ImageIcon imageIcon = new ImageIcon(dimg);
setContentPane(new JLabel(imageIcon));
}
}
如何修复它?尝试以下示例:
JFrame f = new JFrame();
try {
f.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("test.jpg")))));
} catch (IOException e) {
e.printStackTrace();
}
f.pack();
f.setVisible(true);
或者,实现目标的另一个好方法是使用
请尽量避免使用绝对路径,它们几乎总是在更改目录或系统时破坏应用程序
如果有帮助,请告诉我:)它不起作用:(您也尝试过背景面板吗?没有,您可以帮助idk如何
setVisible(true);
应该是最后一个。