[swing] rysowanie migacza

0

Witam,
mogłby ktos mi podpowiedziec i najlepiej to pokazac w kodzie jak zrobic migajacy obiekt, moze to byc wszystko jedno, przyjmijmy ze to kolo. Chcialbym aby to kolo pokazywalo sie co 1 sek na 1 sek. Ja kombinowalem z timerem, cos czasami mi mignie czasami nic sie nie ruszy. Prosilbym tez o najprostszy przyklad.
Z gory thx.

0
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class Migacz extends JFrame
{
    private javax.swing.Timer timer=null;
    private MojPanel panel=null;
    protected boolean jest=true;
    //------------------------
    public static void main(String[] args)
    {
        new Migacz();
    }
    //------------------------
    public Migacz()
    {
        super("Migacz");
        setSize(200,260);
        panel=new MojPanel(this);
        add(panel,BorderLayout.CENTER);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);

        timer=new javax.swing.Timer(1000,new ActionListener()
        {
            public void actionPerformed(ActionEvent evt)
            {
                jest=!jest;
                panel.repaint();
            }
        });
        timer.start();
    }
}
//------------------------------------------------
class MojPanel extends JPanel
{
    private Migacz parent;
    //------------------------
    public MojPanel(Migacz parent)
    {
        super();
        this.parent=parent;
    }
    //------------------------
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        if(parent.jest)
        {
            g.setColor(new Color(100,150,200));
            g.fillOval(70,70,60,60);
        }
        else
            g.clearRect(70,70,60,60);
    }
}

0

dzieki wielki. ja probowalem to zrobic ze java.util.Timer przez co migalo mi nie rowno, przynajmniej tak mi sie wydaje. Musze sie jeszcze sporo nauczyc. Jeszcze raz dzieki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1