java - 为什么 paintComponent 执行了 2 次?

标签 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 次?

最佳答案

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

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

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

关于java - 为什么 paintComponent 执行了 2 次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9355395/

相关文章:

java - 遇到找不到或无法加载主类错误的情况,有人可以帮助我修复该错误吗?我是Java新手

java - 如何读取java中损坏的序列化对象

java - JMenuBar 重新绘制我的 JPanel

java - 在 JFrame 中查找鼠标位置

java - 单击时在 JButton 上绘制一个椭圆

java竞争条件方法调用与原子调用

java - 在 Java 中使用扩展类时的小问题

java - 在vlcj MediaPlayer上添加透明Swing组件?

Java 绘制组件 |显卡g

java - PaintComponent(Graphics) 方法不起作用