【发布时间】:2025-12-16 04:15:01
【问题描述】:
这是这个程序的代码。如果我在 public void paintComponent(Graphics g) {} 方法中加载图像,图像会加载,但是如果我从另一个类加载它们,它们不会。
主类:
public class main {
static GUI GUI = new GUI();
static render render = new render();
static loader loader = new loader();
public static void main(String [] args) {
frame.start();
loader.start();
}
}
框架类:
public class GUI implements Runnable {
public void start() {
new Thread(this).start();
}
public void run(){
JFrame frame = new JFrame();
System.out.println("frame starting");
frame.setSize(700,600);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setTitle("Project ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.addMouseListener(render);
frame.add(render);
frame.setVisible(true);
}
}
渲染类
public class render extends JPanel implements ActionListener {
Timer tm = new Timer(7, this);
loader loader = new loader();
public render() {
tm.start();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(loader.Getbackground(), -100,-400,null);
public void actionPerformed(ActionEvent e) {
repaint();
}
}
加载器类
public class loader implements Runnable {
Image background;
public void start() {
new Thread(this).start();
}
public void run() {
ImageIcon backgroundhold = new ImageIcon(render.class.getResource("resources/Background.png"));
background = backgroundhold.getImage();
setbackground(background);
}
public void setbackground(Image background) {
this.background = background;
}
public Image Getbackground() {
return background;
}
public void setbackground(Image background){
this.background = background;
}
}
当程序启动时,它会打开一个没有图像的空框架。我做错了什么?
阿伦
【问题讨论】:
-
您的代码必须经过审核,您甚至没有在 Render 类中打开
{,没有声明字段frame... -
抱歉代码是手动添加的,我可能忘记添加部分代码了。