【问题标题】:Overriding paintComponent in AWT [duplicate]在 AWT 中覆盖paintComponent [重复]
【发布时间】:2013-12-12 10:42:15
【问题描述】:

我看到很多人说,为了一次将多个对象绘制到屏幕上并覆盖 EDT,您需要类似于以下内容:

@Override
protected void paintComponent(Graphics g)
{
    super.paintComponent(g);    // This will clear everything...

我的问题是,你怎么称呼这个方法?你从哪里得到它的参数的图形?

【问题讨论】:

  • 你不叫它。当 Java 决定需要绘制某些东西时(从 EDT)调用它。
  • AWT 没有paintComponent 方法。您正在考虑 Swing(不是顶级容器,而是 JComponent 的扩展)。
  • 阅读 Custom Painting 上的 Swing 教程部分,了解绘画的基础知识。

标签: java swing awt paintcomponent


【解决方案1】:

你怎么称呼这个方法?你从哪里得到它的参数的图形?

调用组件的repaint() 方法。它将调用paintComponent()(只要事件调度线程不忙)。实际上,您只需要在绘画所依赖的条件发生变化时手动执行此调用。否则,只要窗口的相关部分需要绘画,您的绘画方法就会被自动调用,这就是您所需要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    相关资源
    最近更新 更多