Unsaubere Bewegung

PrincE

Aktives Mitglied
Hallo Leute,

ein einfaches Beispiel beschreibt mein Anliegen:

Java:
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Beispiel
{
	private static JFrame frame;
	private static JPanel panel;
	private static long temp;
	
	public static void main(String[] args)
	{
		frame = new JFrame("Test");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLayout(null);
		frame.setBounds(20, 20, 1024, 768);
		
		panel = new JPanel();
		panel.setBackground(Color.RED);
		panel.setBounds(0,0, 50, 50);
		
		frame.getContentPane().add(panel);
		frame.setVisible(true);
		
		new Thread()
		{
			@Override
			public void run()
			{
				for(int k = 0; k < 10; k++)
				{
					panel.setLocation(0,0);
					
					for(int i = 0; i < 1000; i++)
					{
						temp = System.currentTimeMillis();
						panel.setLocation(i,i);
						
						try
						{
							Thread.sleep(5 - (System.currentTimeMillis() - temp));
						}
						catch (InterruptedException e)
						{
							e.printStackTrace();
						}
					}
				}
				
				System.exit(0);	
			}
		}.start();
	}
}

Bei mir bewegt sich das Panel ab und an ein bisschen unsauber, es sieht sogar so aus als ob es sich kurz vergrößert und wieder verkleinert. Wieso tut es das? Bei euch auch?
Ich hab schon geschaut, ob es noch eine andere Methode für bewegen gibt, aber es gibt nur move() und dieses wurde ersetzt durch setLocation().
 
Zuletzt bearbeitet:

TKausL

Top Contributor
So ein JPanel ist sicherlich nicht dazu da, großartige Bewegungen anzuzeigen. Dafür solltest du dann doch direkt painten...
 

PrincE

Aktives Mitglied
alles klar, klingt so als sollte man Swing nicht für sowas benutzen.

Aber wenn ich diese Komponenten nicht verwende, habe ich kein MouseListener mehr für andere Zwecke?
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben