paintComponent()函数调用

时间:2016-04-09 11:18:06

标签: java swing graphics jframe jpanel

这是我的代码,它的工作完美,并在JFrame中绘制形状。每个方法都按名称调用,在我的程序中,我没有调用任何paintComponent()方法。那么paintComponent()方法的调用方法在哪里?

import javax.swing.*;
import java.awt.*;
import java.util.*;

public class drawings extends JPanel {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JFrame frame = new JFrame();
        frame.setTitle("Shapes");
        frame.setVisible(true);
        frame.setBounds(150, 10, 1000, 700);
        frame.setResizable(false);
        frame.add(new drawings());
    }
    public void paintComponent(Graphics g){
        g.setColor(Color.BLUE);
        g.fillRect(20, 10, 200, 100);
        g.setColor(Color.magenta);
        g.fill3DRect(230, 10, 200, 100, false);
    }
}

1 个答案:

答案 0 :(得分:0)

您实际上并未明确调用该方法。当需要调用方法时,程序自行决定。它通常在发生变化时发生。

如果您有机会强制重绘,只需在视图类(或该对象)中调用方法repaint()

同样在paintComponent()方法中,请确保您要做的第一件事就是致电super.paintComponent()