Je voulais créer une balle qui rebondit de haut en bas et je veux déplacer la balle vers la gauche et la droite pendant que la balle rebondit avec les touches «a» et «d». PS le mouvement ne fonctionne pas sur la balle. Voici mon code à ce jour s'il vous plaît aidez-moi:Comment utiliser la commande de mouvement sur une balle que j'ai créée dans le Jpanel?
import java.util.Scanner;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class jump extends JPanel implements ActionListener,KeyListener{
static int x=100,y=100,xinc=10,yinc=10, o=50;
static int width =250,height=350;
boolean ballright, ballleft;
static JFrame f;
public void paintComponent (Graphics g){
g.fillOval(x, y,20,20);
}
public static void main(String a[]){
jump j= new jump();
f= new JFrame();
f.add(j);
f.setSize(width,height);
f.setVisible(true);
Timer t = new Timer(50, j);
t.start();
}
public void actionPerformed(ActionEvent e) {
if ((y>height-40)|| (y<0)) yinc=-yinc;
y=y+yinc;
if (ballleft==true){
x=x+50;
}
if (ballright==true){
x=x-50;
}
f.repaint();
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
if (e.getKeyCode()==KeyEvent.VK_A){
ballleft=true;
}
else if (e.getKeyCode()==KeyEvent.VK_D){
ballright=true;
}
f.repaint();
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if (e.getKeyCode()==KeyEvent.VK_A){
ballleft=false;
}
if (e.getKeyCode()==KeyEvent.VK_D){
ballright=false;
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
D'abord, utilisez les raccourcis clavier api sur KeyListeners; Deuxièmement, appelez super.paintComponent avant d'effectuer une peinture personnalisée; Troisièmement, assurez-vous de démarrer l'interface utilisateur dans le contexte de l'EDT – MadProgrammer