No se puede dibujar gráficos Debido a la anotación "@ Override"

Quijibo:

He estado experimentando con el dibujo de un JFrame, así que podía usar estos experimentos en el futuro para un programa que podría crear. Sin embargo, he encontrado un problema que no soy capaz de resolver: Cómo dibujar cosas mientras tenga un contador de tiempo establecido.

public static void MyTimer() {
JFrame frame = new JFrame("Colors");

    int width = 700;
    int height = 700;

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setBackground(Color.BLACK);
    frame.pack();
    frame.setSize(width, height);
    frame.setVisible(true);
    frame.setResizable(false);
    TimerTask task;
task = new TimerTask() {
    int a = 2;

    @Override
    public void run(Graphics g) {
        g.drawRect(a, 2, a + 66, 68);
    g.fillRect(a, 2, a + 66, 68);

        a = a + 20;
    }
};
     timer.schedule(task, 0, 1000);

}

Como se puede ver, estoy tratando de dibujar una nueva plaza cada segundo. El problema es que me da un error en el código:

método no anula ni poner en práctica un método de un supertipo

¿Cómo puedo arreglar esto?

camickr:

¿Cómo puedo arreglar esto?

El run()método no tiene un parámetro. Deshacerse de los parámetros gráficos. Que se librará del error de compilación.

Sin embargo, que todavía no le ayudará con su pintura.

En su lugar se debe redefinir el paintComponent(...)método de una JPanela continuación, agregar el panel al marco. A continuación, se utiliza el objeto Graphics pasado al método paintComponent () para hacer su pintura.

Lea la sección del tutorial Swing en Pintura personalizada para obtener más información y ejemplos de trabajo para que pueda empezar.

Además, no debe utilizar un TimerTask para la animación. Usted debe utilizar un temporizador de golpe . Luego, en el actionPerformed(...)método de la ActionListenerque iba a cambiar las propiedades de la pintura de encargo (es decir, en su caso añadir un nuevo objeto cuadrado a pintar) y luego invocar repaint()en el panel.

, Estoy tratando de dibujar una nueva plaza cada segundo

Mira el DrawOnImageejemplo que se encuentra en Custom Painting Enfoques . Se le mostrará cómo agregar un objeto a un rectángulo BufferedImage.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=119789&siteId=1
Recomendado
Clasificación