【问题标题】:Why is paintComponent executed 2 times?为什么paintComponent被执行了2次?
【发布时间】:2012-02-20 02:13:18
【问题描述】:

我有以下代码:

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

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

【问题讨论】:

    标签: java swing paintcomponent


    【解决方案1】:

    paintComponent 几乎可以在任何时候被 Swing 框架调用。何时发生这种情况的示例:

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

    这些都不应该让你担心——你应该只写你的代码,这样它就不会关心paintComponent被调用了多少次。

    【讨论】:

    • 这正是程序逻辑不应驻留在此方法中的原因之一。 1+
    猜你喜欢
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 2016-02-04
    相关资源
    最近更新 更多