I have following code:

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

MembsershipFunctionComponent extends JComponent. Why is paintComponent method executed 2 times?

有帮助吗?

解决方案

paintComponent can get called at pretty much any time by the Swing framework. Examples of when this might happen:

  • Any time a component is resized
  • Any time part of the component is revealed (for example in a scrollable window)
  • Any time the repaint() method is called on your component (or possibly a parent or sub-component)
  • Any time there is a layout change

None of this should worry you - you should just write your code so that it doesn't care how many times paintComponent is called.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top