【发布时间】:2012-09-05 14:05:09
【问题描述】:
问题都在标题中:)。我不知道我的代码有什么问题以及为什么它不会将圆圈绘制到 Japplet 上。你能帮帮我吗?
这是我的代码:
import javax.swing.*;
import java.awt.Graphics;
import java.awt.Event;
public class BouncingBall extends JApplet {
private static final long serialVersionUID = 1L;
boolean b = true;
long speed = 50;
int pos = 250;
public void init(){
setSize(500,500);
}
public boolean mouseDown(Event e, int x, int y)
{
if(y>250)
{
speed = speed - 10;
}
else
{
speed = speed + 10;
}
repaint();
return true;
}
public void paintComponents(Graphics g)
{
g.drawOval(250,pos,100,100);
if(speed <= 20)
{
speed++;
repaint();
}
try
{
Thread.sleep(speed);
}
catch(InterruptedException e){e.printStackTrace();}
if(pos>=400)
{
b = false;
}
if(pos<=100)
{
b = true;
}
if(b==true)
{
pos = pos +5;
}
else
{
pos = pos -5;
}
repaint();
}
}
乳液
【问题讨论】:
-
为第一条线索添加@Override 符号。
-
public boolean mouseDown(Event e, int x, int y)OMG 你从哪里得到这个代码的?在上个千年的某个地方? -> ref. 已弃用。 从 JDK 版本 1.1, 替换为 processMouseEvent(MouseEvent)。 -
不要在paint方法中调用repaint,你最终会把你的CPU运行到100%
-
使用定时器,不要停止 EDT
标签: java swing graphics paintcomponent japplet