gpt4 book ai didi

java - 如果需要调用方法,为什么update(Graphics g)方法可以自动运行?

转载 作者:行者123 更新时间:2023-12-02 10:14:51 24 4
gpt4 key购买 nike

示例:当我们在 main 方法中创建 JFrame 并重写 update 时,我们不需要在 Jframe 实例处调用 update 来启动循环,该方法会自动开始,为什么?什么叫更新?

例如:

        public class Example extends JPanel{
public Example(){
setSize(new Dimension(500, 400));
setPreferredSize(new Dimension(500, 400));
setBackground(Color.BLACK);
setFocusable(true);}
@Override
public void update(Graphics g) {
paint(g);
System.out.println("The method update is always being running, but I never call it at main method!")

}
@Override
public void paint(Graphics g) {
g.setColor(Color.WHITE);
g.fillOval(0, 0, 40, 40);

g.dispose();
repaint();
}
public static void main(String[]args){
Example example = new Example();
JFrame frame = new JFrame();
frame.setTitle("Why?");
frame.add(example);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}

最佳答案

update() 方法就是所谓的“回调”。它由 Swing 库调用。同样,paint() 也是 Swing 会自动调用的回调。

请注意,在“现代”Swing 中,您应该重写 paintComponent() 而不是 paint()

关于java - 如果需要调用方法,为什么update(Graphics g)方法可以自动运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54757094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com