JLabel

Mhyrtas Messages postés 3 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 12 mai 2010 - 5 mai 2010 à 02:32
Mhyrtas Messages postés 3 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 12 mai 2010 - 5 mai 2010 à 18:06
Bonjour à tous, j'ai un problème que j'aimerais bien résoudre. En fait, j'essaie de faire déplacer des jlabels avec les touches directionnelles du clavier. Sachant qu'en fonctionnant ainsi, il y a des saccades dû au temps de réponse du clavier, je me suis tourné vers les booleans, ça consiste à rendre un bool à true/false selon son keyPressed ou keyReleased. Mais voilà, je suis bloqué puisque mon programme ne semble pas reconnaître les bools ou tout simplement rendrer dans ma boucle afin de tous les vérifier.

J'ai vu que plusieurs techniques utilisaient des threads, mais j'avoue ne pas être encore très familier avec ces derniers :S

Quelqu'un pourrait bien m'aider ?

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 07:59
Salut,

Montre voir ton code.

En effet, il faut utiliser des threads pourque ton traîtement (boucle je présume) ne bloque par tout le programme tant que ta boucle est exécutée.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Mhyrtas Messages postés 3 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 12 mai 2010
5 mai 2010 à 18:05
Voici la partie qui fait défaut...


private void movesPressed(java.awt.event.KeyEvent evt) {

if(menu == 3){
if(evt.getKeyCode() == evt.VK_RIGHT){
RightP1 = true;
jlSpriteP1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Fighters_Moves/"+JFrame_Main.selectedFighterP1+"_walkingP1.gif")));
}
if(evt.getKeyCode() == evt.VK_LEFT){
LeftP1 = true;
frameKM.jlSpriteP1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Fighters_Moves/"+JFrame_Main.selectedFighterP1+"_reverseP1.gif")));
}
if(evt.getKeyCode() == evt.VK_A){
LeftP2 = true;
frameKM.jlSpriteP2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Fighters_Moves/"+JFrame_Main.selectedFighterP2+"_walkingP2.gif")));
}
if(evt.getKeyCode() == evt.VK_D){
RightP2 = true;
frameKM.jlSpriteP2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Fighters_Moves/"+JFrame_Main.selectedFighterP2+"_reverseP2.gif")));
}
}

}

@SuppressWarnings("static-access")
private void movesReleased(java.awt.event.KeyEvent evt) {
if(menu ==3){
if(evt.getKeyCode() == evt.VK_RIGHT){
RightP1 = false;
frameKM.jlSpriteP1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Fighters_Choose_P1/"+JFrame_Main.selectedFighterP1+"_chooseP1.gif")));
}

if(evt.getKeyCode() == evt.VK_LEFT){
LeftP1 = false;
frameKM.jlSpriteP1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Fighters_Choose_P1/"+JFrame_Main.selectedFighterP1+"_chooseP1.gif")));
}

if(evt.getKeyCode() == evt.VK_A){
LeftP2 = false;
frameKM.jlSpriteP2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Fighters_Choose_P2/"+JFrame_Main.selectedFighterP2+"_chooseP2.gif")));
}

if(evt.getKeyCode() == evt.VK_D){
RightP2 = false;
frameKM.jlSpriteP2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Fighters_Choose_P2/"+JFrame_Main.selectedFighterP2+"_chooseP2.gif")));
}
}

}

private static void moveChar(){
while(true && menu ==3)
if(RightP1){
int X1 = frameKM.jlSpriteP1.getX();
int Y1 = frameKM.jlSpriteP1.getY();
frameKM.jlSpriteP1.setLocation(X1 + speed, Y1);
}

}
public static void main(String args[]) {

kmTheme.start();
frameKM.setVisible(true);
jlCadreP1.setVisible(false);
jlCadreP2.setVisible(false);
frameKM.jlSpriteP1.setVisible(false);
frameKM.jlSpriteP2.setVisible(false);
frameKM.pbEnergieP1.setVisible(false);
frameKM.pbEnergieP2.setVisible(false);

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
moveChar();

}
});
}
0
Mhyrtas Messages postés 3 Date d'inscription dimanche 19 octobre 2008 Statut Membre Dernière intervention 12 mai 2010
5 mai 2010 à 18:06
J'ai essayé pleins de trucs alors je suis conscient que cette solution ne marche pas trop, mais c'est une de ceux que j'ai essayé...
0
Rejoignez-nous