简体   繁体   English

未调用paintComponent,无法使图像变量起作用

[英]paintComponent isn't being called, can't get image variables to work

So I know I suck at programming, but if anyone could give me some code help I would appreciate it, I don't know why I am getting this error所以我知道我编程很烂,但是如果有人能给我一些代码帮助,我将不胜感激,我不知道为什么我会收到这个错误

cannot find symbol找不到标志

  g.drawImage(movPic2, 35, 515, 200, 200,this);                 ^
  symbol:   variable movPic2
  location: class MovieDis

if any1 could give me a code snippet example i have trouble understanding in just words.如果any1可以给我一个代码片段示例,我很难用文字理解。 tired of this program and just wanting to get done with it.厌倦了这个程序,只想完成它。

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);
    }
}

the variable movPic1 (and 2-4) are not stored anywhere inside your MovieDis class.变量movPic1 (和 2-4)未存储在MovieDis类中的任何位置。 That's why the paintComponent() method is complaining.这就是paintComponent()方法抱怨的原因。 You need to add those to MovieDis and then assign them in your class constructor.您需要将它们添加到MovieDis ,然后在类构造函数中分配它们。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM