class ballbouncepanel extends JPanel
{
public void start()
{
Timer timer;
final int FREQ = 45;
timer = new Timer(FREQ, new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
repaint();
}
});
timer.start();
}
Rect rect = new Rect();
public Dimension getPreferredSize()
{
return new Dimension(250,200);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
rect.draw(g);
rect.move(g);
rect.erase(g);
}
}
class Rect
{
public int xLocation = 0;
public int yLocation = 0;
public int xVelocity = 10;
public int yVelocity = 10;
public void draw(Graphics g)
{
g.setColor(Color.cyan);
g.fillRect(xLocation, yLocation, 20, 20);
}
public void move(Graphics g)
{
xLocation += xVelocity;
yLocation += yVelocity;
}
public void erase(Graphics g)
{
g.setColor(Color.white);
g.fillRect(xLocation, yLocation, 20, 20);
}
}
新错误是现在我的重绘方法不起作用。
上面是我想要绘制的框架的代码,我理解使用applet或JApplet进行绘制,但我正在尝试做我在Swing上的applet中所做的事情,现在我遇到了问题,我已经查找了许多关于如何实现图形的教程,但是大多数只是运行主图形,我需要我在这个特定的框架(BB)。如果有人可以帮助我理解或指向我的初学者教程,我们将不胜感激。
答案 0 :(得分:1)
我认为您只是忘记拨打start()
的{{1}}方法。还要注意:你的ballbouncepanel
方法没有绘画,所以取出move()
参数并在计时器中调用它
也不确定Graphics
方法应该做什么,但我想你想在计时器的每个刻度上改变颜色。在这种情况下,只需保留一个erase
变量,然后只需更改该变量即可。你可以看到下面的例子
color