问题
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?
回答1:
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.
来源:https://stackoverflow.com/questions/9355395/why-is-paintcomponent-executed-2-times