-2

Javaでプログラムを作りたいです。私がやろうとしているのは、ユーザーが画面をクリックすると小さな四角が描かれるということです。前の正方形を中心に、さらに 10 個の正方形が表示されます。6 番目の正方形が描かれると最初の正方形が消え、7 番目の正方形が描かれると 2 番目の正方形が消え、すべての正方形がなくなるまで続きます。

これは MainActivity です。

import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MainActivity {
    public static int width = 900;
    public static int height = width / 16 * 9;

    static HandlerClass handler = new HandlerClass();

    static JFrame window;
    static JPanel windowInner;

    public static void main(String[] args) {
        window = new JFrame("Squarmony 1.0");
        window.setSize(width, height);
        window.setVisible(true);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        windowInner = new JPanel();
        windowInner.setSize(width, height);
        windowInner.setBackground(Color.BLACK);

        window.add(windowInner);
        windowInner.addMouseListener(handler);
    }

    private static class HandlerClass implements MouseListener {
        @Override
        public void mouseClicked(MouseEvent e) {
            // TODO Auto-generated method stub
            GraphicsActivity g = new GraphicsActivity();
            g.drawRectRipple(window.getGraphics(), e);
        }

        @Override
        public void mouseEntered(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mouseExited(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mousePressed(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mouseReleased(MouseEvent e) {
            // TODO Auto-generated method stub

        }
    }
}

そしてここに GraphicsActivity があります:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;

public class GraphicsActivity {
    public void drawRectRipple(Graphics g, MouseEvent e) {
        g.setColor(Color.WHITE);

        for (int i = 0; i <= 10; i++) {
            for (int j = 0; j <= 250; j += 10) {
                g.drawRect(e.getX() + j / 2, e.getY() - j / 2, j - j / 2, j + j / 2);
                try {
                    Thread.sleep(250);
                } catch (InterruptedException e1) {

                }
            }
        }
    }
}

長方形を 1 つずつ (波紋のように) 画面に描画するにはどうすればよいですか?

ありがとう、

ジョン

4

1 に答える 1