Witam, stanąłem w miejscu i nie potrafię sobie poradzić z problemem. Stworzyłem trzy klasy. W klasie Start chciałbym stworzyć dwa elementy(zielone prostokąty), które pojawiają się cyklicznie na różnych współrzędnych w określonym czasie. Niestety problem polega na tym, że na ekranie po pojawieniu jednego z tych elementów poprzedni jest usuwany. I moje pytanie: czy da się jakoś zastopować super.paint(g) przy wywołaniu jednego z tych elementów? Proszę bez zbędnych epitetów- dopiero się uczę. Z góry dziękuję za rady
Edit: albo jak usunąć ostatni narysowany obraz?
package probtimery2;
import java.util.Timer;
import javax.swing.JFrame;
public class Start extends JFrame {
static JFrame frame= new JFrame();
static Panel panel= new Panel();
public static void main(String[] args){
frame.setSize(300,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
Czas czas= new Czas();
Czas czas2= new Czas();
frame.add(panel);
Timer timer=new Timer();
Timer timer2=new Timer();
timer.schedule(czas, 0,1*1000);
timer2.schedule(czas2, 0,2*1000);
}
}
package probtimery2;
import java.awt.Color;
import java.util.Random;
import java.util.TimerTask;
public class Czas extends TimerTask
{
static int x=30;
static int y=30;
Random random=new Random();
public void run()
{
x=random.nextInt(200);y=random.nextInt(200);
Start.panel.repaint();
System.out.println("juz");
}
}
package probtimery2;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;
public class Panel extends JPanel {
Color kolor;
Random rand=new Random();
public void swicz()
{
int i=rand.nextInt(5);
switch (i) {
case 1: kolor=Color.GREEN;
break;
case 2: kolor=Color.RED;
break;
case 3: kolor=Color.BLUE ;
break;
case 4: kolor=Color.YELLOW;
break;
case 5: kolor=Color.WHITE;
break;
}
}
public void paint(Graphics g){
this.swicz();
super.paint(g);
g.setColor(kolor);
g.fillRect(Czas.x,Czas.y, 30, 30);
}
}