Java - 从不同的类调用paint方法?

时间:2014-10-20 18:31:02

标签: java swing class paint repaint

我有一个扩展JFrame的类并创建一个窗口,它需要调用另一个类中的paint()方法。我知道如果它们在同一个类中,setVisible(true)将调用paint方法,但由于它们位于不同的类中,因此它不会。我已经创建了Die类的对象(一幅画),但我不知道如何使用它们来调用paint方法。

这是创建窗口的类:

public class Game extends Frame 
{

    public void window()
    {   
        setTitle("Roll");   //  Title of the window
        setLocation(100, 100);          //  Location of the window
        setSize(900, 600);              //  Size of the window
        setBackground(Color.lightGray); //  Color of the window
        setVisible(true);               //  Make it appear and call paint

    }

对于另一个名为Die的类中的paint方法,我使用了:

public void paint(Graphics pane)

1 个答案:

答案 0 :(得分:2)

如果我理解了您的问题,您可以将Die实例传递给Game构造函数,例如

public class Game extends Frame {
  private Die die;
  public Game(Die die) {
    this.die = die;
  }
  public void window() {    
    setTitle("Roll");   //  Title of the window
    setLocation(100, 100);          //  Location of the window
    setSize(900, 600);              //  Size of the window
    setBackground(Color.lightGray); //  Color of the window
    setVisible(true);               //  Make it appear and call paint
    die.setVisible(true);           //  The same
  }
}

然后,只要您调用new Game(),就可以添加Die实例参数。这是在Java(和其他OOP语言)中实现callback的一种相当常见的方式。