【问题标题】:Overiding AWT and storing graphics覆盖 AWT 和存储图形
【发布时间】:2012-07-08 04:24:21
【问题描述】:

-大家好!我正在制作一个模拟波干扰的 Java 小程序,我几乎已经完成了(将在 GPL 下获得许可)。但是,我有两个关于 AWT 绘制周期的问题很难找到答案。

  1. 我想制作一个“关于”覆盖,当我按下按钮时会出现。我想要这样做的方法是用我的静态消息和图例对象在整个小程序窗口上绘制。问题是在不使用 remove() 的情况下阻止 AWT 组件在前台绘制自己。有什么办法可以让 AWT 暂时停止自己绘制?

  2. 对于我的驻波模式,我希望每次驻波达到最大振幅时计算节点和波腹标记并将其绘制到辅助图形(所有这些我都可以自己完成),但绘制到每个绘制周期的主要图形(并因此显示)。有人可以解释这样做的步骤吗?我想这将涉及创建第二个图形对象,绘制一次,然后在每个周期将其绘制到主图形。

如果您能回答我的任何一个问题,我将不胜感激!

干杯,杰克·艾莉森

【问题讨论】:

    标签: java awt graphics2d


    【解决方案1】:

    回答你的第一个问题:

    如果您已将 paint()/paintComponent() 方法包含在您的代码中,则不能禁用它。如果它在那里,它就会运行。但是,您可以创建一个标志,以便只有当标志为真时,才会绘制内容。让我告诉你我的意思:

    boolean flag;
    
    ...
    
    public void paintComponent(Graphics comp) {
        if (flag) {
            Graphics2D comp2D = (Graphics2D) comp;
            //drawing statements
        }
    }
    
    public void actionPerformed(ActionEvent event) {
        flag = true;
        repaint();
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-26
      • 2013-12-12
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多