我有一个扩展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)
答案 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的一种相当常见的方式。