这是我的代码,它的工作非常完美,并在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);
}
}发布于 2016-04-09 11:34:21
大概吧。当您使用UI组件时,会启动一个UI线程来管理不同类型的事件。在这些事件中,有一些与您的面板的可见性有关,例如,当宿主图形系统希望您的面板可见时,它向您的应用程序发送一个事件以请求该面板的绘图,然后UI线程调用相应的paint()方法,该方法反过来调用paintComponent()。
https://stackoverflow.com/questions/36516045
复制相似问题