1

長方形、円、線を描画してからアニメーション化する必要があります(たとえば、左を押す->それ(すべてのオブジェクト)が左に移動します)。

このようなオブジェクトを描きます

class MyCanvas extends JComponent {

int x = 10;
int y = 10;
public MyCanvas()
{
    Action someaction = new AbstractAction(){
        @Override
        public void actionPerformed(ActionEvent e) {
            x+=30;
            //revalidate();
            repaint();
        }
    };
    this.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), someaction);
}        
@Override
public void paintComponent(Graphics g) {
g.drawRect(x,y, 200, 200); 
g.drawOval(x, y, 50, 50);
g.drawLine(x, y, 50, 30);
  }
}

しかし、それは動きません。

4

1 に答える 1

2
  1. 代わりにpaintComponent(Graphics g)Swingに使用するJComponentspaint(Graphics g)

  2. スイングKeyBindingsに使用KeyEventsJComponents

  3. オブジェクト(前に準備paintComponent(Graphics g))を配列に配置し、配列から要素をペイントしますpaintComponent(Graphics g)

于 2012-06-11T20:13:28.600 に答える