为什么paintComponent执行了2次?

时间:2012-02-20 02:13:18

标签: java swing paintcomponent

我有以下代码:

        canvas=new MembershipFunctionComponent(functions);
        canvas.setPreferredSize(new Dimension((int)this.getWidth(), (int)this.getHeight()));
        canvas.addMouseListener(canvas);
        pane.add(canvas);

MembsershipFunctionComponent扩展了JComponent。为什么paintComponent方法执行了2次?

1 个答案:

答案 0 :(得分:4)

几乎任何时候都可以通过Swing框架调用

paintComponent。可能发生这种情况的示例:

  • 任何时候调整组件的大小
  • 任何时候组件的一部分被显示(例如在可滚动的窗口中)
  • 任何时候在组件上调用repaint()方法(或者可能是父组件或子组件)
  • 任何时候布局更改

这些都不应该让你担心 - 你应该只编写你的代码,这样就不关心paintComponent的调用次数。