qhhu
Messages postés66Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 octobre 2009
-
19 juil. 2006 à 23:04
qhhu
Messages postés66Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 octobre 2009
-
26 juil. 2006 à 10:37
Bonjour a tous!
J'ai un probleme avec java.awt.event.MouseMotionListener.
En effet je cherche a faire un programme du style "Qui trouvez vous le plus intelligent?" avec 2 boutons "moi" et "l'autre".
Mais quant on déplace la souris, le bouton "moi" rest toujours sous la souris pour qu'on puisse pas appuyer sur "l'autre"
Seulement, le bouton ne suit pas assez vite la souris et on peut toujours cliquer sur "l'autre".
Je pense que c'est MouseMotionListenet qui n'est pas assez précis.
Qqn aurait il une idée svp???
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 20 juil. 2006 à 12:48
Salut,
visiblement ton problème ne vient pas de la vitesse du mouse move mais
plustot de la superposition des jbuttons enfaite il faut que tu trouve
le moyen d'invalider le focus sur le bouton 'autre' pour se faire tu
peux toujour regarder si l'ajout d'un glass pane peut t'aider mais j'ai
un petit doute dessus (pour t'aider il y a cette source ICI)
sinon le plus simple et le plus logique (pour moi) serait de deplacer
le bouton autre des que la souri s'en approche et non de coller le
bouton moi au pointeur.
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
qhhu
Messages postés66Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 octobre 2009 20 juil. 2006 à 11:39
Voici mon petit code :
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class test extends JFrame implements ActionListener, MouseMotionListener{
JLabel lab = new JLabel("Selon vous, qui est le plus intelligent?");
JButton moi = new JButton("Moi");
JButton autre = new JButton("L'autre");
int x = 200;
int y = 200;
}
public void actionPerformed(ActionEvent evt){
if(evt.getSource()==autre){
JOptionPane.showMessageDialog(null,"Vous avez du vous tromper!!\nRecommençons","C'est une blague ou quoi???",JOptionPane.QUESTION_MESSAGE);
} else{
JOptionPane.showMessageDialog(null,"Bravo! Vous avez fait le bon choix!","BRAVO!",JOptionPane.QUESTION_MESSAGE);
System.exit(0);
}
}
public void mouseMoved(MouseEvent evt){
x = evt.getX()-45;
y = evt.getY()-20;
repaintButton();
}
public void mouseDragged(MouseEvent evt){}
public void repaintButton(){
moi.setBounds(new Rectangle(x,y,90,40));
repaint();
}
public static void main(String[] args){
new test();
}
qhhu
Messages postés66Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 octobre 2009 26 juil. 2006 à 10:37
Ok merci bcp pour tes conseils !
Ca ma vraiment aidé!
Et en ce qui concerne le bouton qui se déplace sous la souris, j'ai trouvé un systeme qui utilise une JWindow.
Comme ca, plus de problème de focus.