図面を Japplet に追加し、新しい図面に置き換えるにはどうすればよいですか? repaint() を使用していますが、既存の四角形を置き換えるだけです。別の長方形を追加し、それを置き換えないための正しいコードは何でしょうか?
このコードがあるとします: ( このコードは私のものではありません )
import java.applet.Applet;
import java.awt.*;
public class MoveBox extends Applet
{
private int x = 20, y = 20;
private int width = 10, height = 10;
private int inc = 5;
private Color myColor = Color.red;
private Button up = new Button("Up");
private Button down = new Button("Down");
private Button left = new Button("Left");
private Button right = new Button("Right");
private Button increase = new Button("[+]");
private Button decrease = new Button("[-]");
// init method
public void init()
{
Panel buttons = new Panel();
buttons.setLayout(new FlowLayout());
buttons.add(up);
buttons.add(down);
buttons.add(left);
buttons.add(right);
buttons.add(increase);
buttons.add(decrease);
setLayout(new BorderLayout());
add("South", buttons);
}
// public methods
public boolean action(Event e, Object o)
{
if (e.target == up)
return handleUp();
else if (e.target == down)
return handleDown();
else if (e.target == left)
return handleLeft();
else if (e.target == right)
return handleRight();
else if (e.target == increase)
return handleIncrease();
else if (e.target == decrease)
return handleDecrease();
else
return super.action(e, o);
}
public void paint(Graphics g)
{
g.setColor(myColor);
g.fillRect(x,y,width,height);
}
// private methods
private boolean handleUp()
{
y = y - inc;
repaint();
return true;
}
private boolean handleDown()
{
y = y + inc;
repaint();
return true;
}
private boolean handleRight()
{
if (x < size().width)
x = x + inc;
else
x = 0;
repaint();
return true;
}
private boolean handleLeft()
{
if (x > 0)
x = x - inc;
else
x = size().width;
repaint();
return true;
}
private boolean handleIncrease()
{
width += 5;
height += 5;
repaint();
return true;
}
private boolean handleDecrease()
{
if (width > 5)
{
width -= 5;
height -= 5;
}
repaint();
return true;
}
}
上下左右のボタンを押したときに別の長方形を追加するにはどうすればよいですか?