Voici le code de ce programme. Si je charge les images dans la méthode void paintComponent (Graphics g) {} publique les images chargent, cependant si je les charge d'une autre classe ils ne le font pas.L'image ne charge pas/ne met pas à jour
classe principale:
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();
}
}
classe de cadre:
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);
}
}
rendre classe
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();
}
}
classe de chargement
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;
}
}
Lorsque le programme démarre, il ouvre un cadre vide sans images. Qu'est-ce que je fais mal?
Arun
Votre code doit être révisé, Vous n'ouvrez même pas '' {'' dans la classe Render, il n'y a pas de déclaration du champ '' frame'' ... – MCHAppy
Désolé, le code a été ajouté manuellement, j'ai peut-être oublié d'ajouter des parties de celui-ci. – arunptl100
Je l'ai corrigé – arunptl100