Déplacer un bouton avec les fleches java
Résolu
WeWillNeverForget_11.9.2001
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
j'aimerais savoir comment on peut deplacer un bouton (droite-gauche) à l'aide des fleches en java. j'ai essayé qqch mais cela ne marche pas:
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e) {
case KeyEvent.VK_RIGHT:
goRight();
break;
case KeyEvent.VK_LEFT:
goLeft();
break;
case KeyEvent.VK_UP:
jump();
break;
}
static int posX = 40;
static int posY = 750;
public int goRight() {
posX = posX+1;
return posX;
}
public int goLeft() {
posX = posX-1;
return posX;
}
public int jump() {
}
/**
* @param args
*/
public static void main(String[] args) {
JButton bouton = new JButton("bouton",(new ImageIcon("xxx.jpg")));
bouton.setLayout(null);
bouton.setBounds(posX,posY,10,20);
JPanel panneauPrincipal = new JPanel();
panneauPrincipal.add(bouton);
JFrame fenetre = new JFrame();
fenetre.setSize(1680, 1050);
fenetre.getContentPane().add(bouton);
fenetre.add(panneauPrincipal);
fenetre.setLocationRelativeTo(null);
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setVisible(true);
}}
j'aimerais savoir comment on peut deplacer un bouton (droite-gauche) à l'aide des fleches en java. j'ai essayé qqch mais cela ne marche pas:
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e) {
case KeyEvent.VK_RIGHT:
goRight();
break;
case KeyEvent.VK_LEFT:
goLeft();
break;
case KeyEvent.VK_UP:
jump();
break;
}
static int posX = 40;
static int posY = 750;
public int goRight() {
posX = posX+1;
return posX;
}
public int goLeft() {
posX = posX-1;
return posX;
}
public int jump() {
}
/**
* @param args
*/
public static void main(String[] args) {
JButton bouton = new JButton("bouton",(new ImageIcon("xxx.jpg")));
bouton.setLayout(null);
bouton.setBounds(posX,posY,10,20);
JPanel panneauPrincipal = new JPanel();
panneauPrincipal.add(bouton);
JFrame fenetre = new JFrame();
fenetre.setSize(1680, 1050);
fenetre.getContentPane().add(bouton);
fenetre.add(panneauPrincipal);
fenetre.setLocationRelativeTo(null);
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setVisible(true);
}}
A voir également:
- Déplacer un bouton avec les fleches java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Déplacer colonne excel - Guide
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
Exemple :
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test1
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setLayout(null);
frame.setSize(800, 800);
final JButton button = new JButton("Bouton");
frame.add(button);
button.setBounds(350,380,100,40);
button.addKeyListener(new KeyListener()
{
@Override
public void keyPressed(KeyEvent e)
{
Point p = button.getLocation();
switch (e.getKeyCode())
{
case KeyEvent.VK_RIGHT:
button.setLocation(p.x+1, p.y);
break;
case KeyEvent.VK_LEFT:
button.setLocation(p.x-1, p.y);
break;
case KeyEvent.VK_UP:
button.setLocation(p.x, p.y-1);
break;
case KeyEvent.VK_DOWN:
button.setLocation(p.x, p.y+1);
break;
}
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
});
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
est-ce-qu'il y aurait un moyen d'augmenter la vitesse de deplacment sans le petit accoup qui survient lorsqu'on augmente la valeur de p.x?
button.addKeyListener(new KeyListener() { private double dp = 1; @Override public void keyPressed(KeyEvent e) { Point p = button.getLocation(); switch (e.getKeyCode()) { case KeyEvent.VK_RIGHT: button.setLocation(p.x+(int) dp, p.y); break; case KeyEvent.VK_LEFT: button.setLocation(p.x-(int) dp, p.y); break; case KeyEvent.VK_UP: button.setLocation(p.x, p.y-(int) dp); break; case KeyEvent.VK_DOWN: button.setLocation(p.x, p.y+(int) dp); break; } dp *= 1.05; } @Override public void keyReleased(KeyEvent e) { dp = 1; } public void keyTyped(KeyEvent e) {} });