关于AWT动画的问题 你用的是覆盖update方法解决方法是用双缓冲区来绘图,就是先建立一个Graphics对象,在这个对象上画图,然后往客户端发送,不仅可以减少闪烁,也可以解决你的问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是 Applet 天生的毛病解决方法可以是 不停的重画当然 采用双缓冲是解决闪烁的办法 to telenths(.缓冲溢出.) 就是说如果不是不停的重画,只用双缓冲是不能解决被覆盖就消失的问题了吗? 绘图代码写在public void paint(Graphics g)函数中,否则会刊不到希望的结果的。就如VC不写在OnDraw或OnPaint中一样的。 Applet程序运行有一定的顺序,当第一次运行的时候,执行init()--paint()当当前窗口关闭了,重新看窗口时,就调用start() 这确实是因为覆盖了updata方法产生的问题,有解决的办法吗? 两种方法:1,覆盖UPDATE(),要么要本不清屏,要么只清除屏幕的改变部分(要求算法精确)2,既覆盖UPDATE(),也覆盖PAINT(),且使用双缓冲 能不能详细点,小弟接触AWT时间不长我是这样写update()和paint()的:public synchronized void update(Graphics g) { Dimension d = getSize(); if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) { offscreen = createImage(d.width, d.height); offscreensize = d; if (offgraphics != null) { offgraphics.dispose(); } offgraphics = offscreen.getGraphics(); offgraphics.setFont(getFont()); } offgraphics.setColor(getBackground()); offgraphics.fillRect(0, 0, d.width, d.height); FontMetrics fm = offgraphics.getFontMetrics(); paint(offgraphics); g.drawImage(offscreen, 0, 0, null);}public void paint(Graphics g) { g.drawRect(....);}怎样改进??? public synchronized void update(Graphics g) { Dimension d = getSize(); if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) { offscreen = createImage(d.width, d.height); offscreensize = d; if (offgraphics != null) { offgraphics.dispose(); } offgraphics = offscreen.getGraphics(); offgraphics.setFont(getFont()); } offgraphics.setColor(getBackground()); offgraphics.fillRect(0, 0, d.width, d.height); FontMetrics fm = offgraphics.getFontMetrics(); paint(offgraphics); g.drawImage(offscreen, 0, 0, null);}public void paint(Graphics g) { g.drawRect(....);}public void start(){ g.drawRect(....);} 我这样加的:public void start(){ Graphics g = getGraphics(); g.drawRect(....);}也还是不行! public void start(){ repaint(); }试一下! 随便看看 SQL一个简单问题,求教 开发一个考试系统,如何控制考生的时间,比如:45分钟强制交卷 如何让记事本中的大写字母都位于每一行的第一位 动态调用函数问题,高手Help!!! 问一下在堆区中对象实例的方法被调用的机制,还是被放在栈中处理的么? netscape application server问题 java 中如何捕获 已经被catch的异常? [求助] - 子类调用父类方法,通过反射获取父类属性,菜鸟烈日跪求. 有几个小地方不懂 细致的大虾来解答下 有关跨平台的问题!!! 菜鸟疑问:package
解决方法可以是 不停的重画当然 采用双缓冲是解决闪烁的办法
就是说如果不是不停的重画,只用双缓冲是不能解决被覆盖就消失的问题了吗?
当当前窗口关闭了,重新看窗口时,就调用start()
1,覆盖UPDATE(),要么要本不清屏,要么只清除屏幕的改变部分(要求算法精确)
2,既覆盖UPDATE(),也覆盖PAINT(),且使用双缓冲
我是这样写update()和paint()的:public synchronized void update(Graphics g) {
Dimension d = getSize();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
if (offgraphics != null) {
offgraphics.dispose();
}
offgraphics = offscreen.getGraphics();
offgraphics.setFont(getFont());
}
offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, d.width, d.height);
FontMetrics fm = offgraphics.getFontMetrics();
paint(offgraphics);
g.drawImage(offscreen, 0, 0, null);
}public void paint(Graphics g) {
g.drawRect(....);
}怎样改进???
Dimension d = getSize();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
if (offgraphics != null) {
offgraphics.dispose();
}
offgraphics = offscreen.getGraphics();
offgraphics.setFont(getFont());
}
offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, d.width, d.height);
FontMetrics fm = offgraphics.getFontMetrics();
paint(offgraphics);
g.drawImage(offscreen, 0, 0, null);
}public void paint(Graphics g) {
g.drawRect(....);
}
public void start()
{
g.drawRect(....);
}
{
Graphics g = getGraphics();
g.drawRect(....);
}也还是不行!
{
repaint();
}
试一下!