的paintComponent心不是被调用,不能让图像变量工作
问题描述:
,所以我知道我吸在编程,但如果ANY1可以给我一些代码帮助,我将不胜感激,我不知道为什么我收到此错误的paintComponent心不是被调用,不能让图像变量工作
不能找到符号
g.drawImage(movPic2, 35, 515, 200, 200,this); ^
symbol: variable movPic2
location: class MovieDis
如果any1可以给我一个代码片段的例子,我很难理解用文字。 厌倦了这个程序,只是想完成它。
import java.awt.*;
import javax.swing.*;
import javax.swing.JComponent.*;
public class Movie extends JApplet {
private String movName1;
private String director1;
private int yearMade1;
private Image movPic1;
private String movName2;
private String director2;
private int yearMade2;
private Image movPic2;
private String movName3;
private String director3;
private int yearMade3;
private Image movPic3;
private String movName4;
private String director4;
private int yearMade4;
private Image movPic4;
public void init() {
MovieDis goo = new MovieDis(movPic1, movPic2, movPic3, movPic4);
goo.setBounds(0, 0, 750, 500);
add(goo);
}
}
class MovieDis extends JComponent {
private String movName1;
private String director1;
private int yearMade1;
private Image movPic1;
private String movName2;
private String director2;
private int yearMade2;
private Image movPic2;
private String movName3;
private String director3;
private int yearMade3;
private Image movPic3;
private String movName4;
private String director4;
private int yearMade4;
private Image movPic4;
public MovieDis(Image movPic1, Image movPic2, Image movPic3, Image movPic4) {
setBackground(Color.black);
movPic1 = Toolkit.getDefaultToolkit().createImage("Shaw.jpg");
movPic2 = Toolkit.getDefaultToolkit().createImage("dances.jpg");
movPic3 = Toolkit.getDefaultToolkit().getImage("Inception.jpg");
movPic4 = Toolkit.getDefaultToolkit().getImage("Cuckoo.jpg");
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.black);
g.fillRect(0, 0, 750, 500);
g.drawImage(movPic1, 35, 35, 200, 200, this);
g.drawImage(movPic2, 35, 515, 200, 200, this);
g.drawImage(movPic3, 265, 35, 200, 200, this);
g.drawImage(movPic4, 35, 515, 200, 200, this);
}
}
答
变量movPic1
(2-4)是不是你MovieDis
类的内部存储在任何地方。这就是为什么paintComponent()
方法抱怨。您需要将这些添加到MovieDis
,然后将它们分配到您的类构造函数中。
嘿,这工作。谢谢,我仍然有一个问题,但创建图像,它会得到g.fillRect(0,0,750,500);它并没有画出它看起来像的图像,它是如何将它们存储在MovieDis构造函数中的? – user1547182 2012-08-10 23:33:35
你能编辑你的问题并更新它来包含你的新代码吗?谢谢。 – 2012-08-10 23:37:08
@ user1547182:这似乎是一个新问题。考虑1+ orzechowskid的答案(就像我所做的那样),接受它并提出一个新问题。 – 2012-08-10 23:48:02