paintComponent und Timer

Status
Nicht offen für weitere Antworten.

kulturfenster

Bekanntes Mitglied
Guten Abend,

ich würde gerne von einem Timer einen Strich zeichnen lassen. Leider erscheint kein Strich. Ich hab das Programm nun aufs Nötigste reduziert, doch leider funktioniert es trotzdem nicht.
Ansonsten funktioniert die Klasse (Frame, etc), dh ohne den Timer konnte ich Objekte zeichnen.

Code:
public void paintComponent(Graphics g)
	{
		final Graphics2D g2 = (Graphics2D) g;
		
		class Painter implements ActionListener
		{
						
			public void actionPerformed(ActionEvent e)
			{
				Line2D.Double line2 = new Line2D.Double(new Point2D.Double(20,20),new Point2D.Double(40,40));
				g2.draw(line2);
			}
			
		}
		
		Painter listener = new Painter();
		Timer t = new Timer(1000, listener);
		t.start();
	}

wo liegt das Problem? hat es vielleicht mit der inneren Klasse zu tun?

Vielen Dank für Tipps!
 
Versuch's mal so:
Code:
class DrawingPanel extends JPanel {
    private Double line2;
    public DrawingPanel() {
        Painter listener = new Painter();
        Timer t = new Timer(1000, listener);
        t.start();
    }
    @Override
    public void paintComponent(final Graphics g) {
        final Graphics2D g2 = (Graphics2D) g;
        if(line2 != null){
            g2.draw(line2);
        }
    }
    class Painter implements ActionListener {
        public void actionPerformed(final ActionEvent e) {
            line2 = new Line2D.Double(new Point2D.Double(20, 20), new Point2D.Double(40, 40));
            repaint();
        }
    }
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben