Hallo,
Ich habe einen Kreis auf einem JPanel gezeichnet. Diesen kann ich mit den Pfeiltasten steuern.
Das Problem ist aber, dass der Kreis sich zu langsam bewegt. Wenn ich die Anzahl der Pixel erhöhe, um die der Kreis bewegt werden soll, dann wirkt die Bewegung zu ruckelartig.
Gibts da sonst noch irgendeine Möglichkeit?
Hier mal das Programm (Falls es wen intressiert):
Ich habe einen Kreis auf einem JPanel gezeichnet. Diesen kann ich mit den Pfeiltasten steuern.
Das Problem ist aber, dass der Kreis sich zu langsam bewegt. Wenn ich die Anzahl der Pixel erhöhe, um die der Kreis bewegt werden soll, dann wirkt die Bewegung zu ruckelartig.
Gibts da sonst noch irgendeine Möglichkeit?
Hier mal das Programm (Falls es wen intressiert):
Java:
package A;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class StartPanel extends JPanel implements KeyListener {
public int x = 200;
public int y = 200;
public StartPanel(JFrame frame1) {
frame1.add(this);
setFocusable(true);
this.addKeyListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillOval(x, y, 50, 50);
}
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if(code==38) {
y -= 20;
repaint();
System.out.println("Pfeiltaste OBEN wurde gedrückt");
} else if(code==40) {
y += 20;
repaint();
System.out.println("Pfeiltaste UNTEN wurde gedrückt");
} else if(code==39) {
x += 20;
repaint();
System.out.println("Pfeiltaste RECHTS wurde gedrückt");
} else if(code==37) {
x -= 20;
repaint();
System.out.println("Pfeiltaste LINKS wurde gedrückt");
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}
Java:
package A;
import javax.swing.JFrame;
public class StartFrame extends JFrame {
public StartFrame(int x, int y, String titel) {
this.setSize(x, y);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle(titel);
this.setLocation(500, 200);
}
}
Java:
package A;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Start {
public static void main(String[] args) {
StartFrame frame = new StartFrame(1000, 600, "Start");
StartPanel panel = new StartPanel(frame);
}
}