的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,然后将它们分配到您的类构造函数中。

+0

嘿,这工作。谢谢,我仍然有一个问题,但创建图像,它会得到g.fillRect(0,0,750,500);它并没有画出它看起来像的图像,它是如何将它们存储在MovieDis构造函数中的? – user1547182 2012-08-10 23:33:35

+0

你能编辑你的问题并更新它来包含你的新代码吗?谢谢。 – 2012-08-10 23:37:08

+0

@ user1547182:这似乎是一个新问题。考虑1+ orzechowskid的答案(就像我所做的那样),接受它并提出一个新问题。 – 2012-08-10 23:48:02