-大家好!我正在制作一个模拟波干扰的 Java 小程序,我几乎已经完成了(将在 GPL 下获得许可)。但是,我有两个关于 AWT 绘制周期的问题,我很难找到答案。
我想制作一个在按下按钮时出现的“关于”叠加层。我想要执行此操作的方法是使用静态消息和图例对象绘制整个小程序窗口。问题是在不使用remove() 的情况下阻止AWT 组件在前台绘制自身。有没有办法可以暂时阻止 AWT 自行绘制?
对于我的驻波模式,我希望每次驻波达到最大幅度时计算节点和波腹标记并将其绘制到辅助图形(所有这些我都可以自己完成),但绘制到每个绘制周期的主要图形(并因此显示)。有人可以解释一下这样做的步骤吗?我想这将涉及创建第二个图形对象,绘制一次,然后每个周期将其绘制到主图形。
如果您能够回答我的任何一个问题,我将不胜感激!
干杯, jack ·艾利森
最佳答案
回答你的第一个问题:
如果您已将 paint()
/paintComponent()
方法包含在代码中,则无法禁用它。如果它在那里,它就会运行。但是,您可以创建一个标志,以便只有当标志为 true 时,才会绘制内容。让我告诉你我的意思:
boolean flag;
...
public void paintComponent(Graphics comp) {
if (flag) {
Graphics2D comp2D = (Graphics2D) comp;
//drawing statements
}
}
public void actionPerformed(ActionEvent event) {
flag = true;
repaint();
}
关于java - 覆盖 AWT 并存储图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383736/