Je suis très nouveau à Java et je fais un simple fabricant d'art de pixels. J'ai copié une boucle pour dessiner des cercles. Je faisais la méthode de clic de souris. Je l'ai fait pour que lorsque je clique, il imprime "Gauche" ou "Droite".
Ceci est le système de grille: http: //www.java2s .com / Tutorials / Java / Graphics / Forme / Draw_a_grid_by_drawing_lines_in_java.htm p>
Ceci est mon système de souris à souris de souris que j'ai utilisé: P>
Le seul problème est qu'il n'imprime pas la "gauche" et "droite". Voici mon code: P> import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
class Main extends JComponent implements MouseListener {
public static void main(String[] args) {
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30, 30, 600, 584);
window.getContentPane().add(new Main());
// window.setResizable(false);
window.setVisible(true);
}
public void paint(Graphics g) {
int rows = 20;
int cols = 20;
int width = getSize().width;
int height = getSize().height;
// draw the rows
int rowHt = height / (rows);
for (int i = 0; i < rows; i++)
g.drawLine(0, i * rowHt, width, i * rowHt);
// draw the columns
int rowWid = width / (cols);
for (int i = 0; i < cols; i++)
g.drawLine(i * rowWid, 0, i * rowWid, height);
}
public void MapCalculations(MouseEvent e) {
// If left mouse button is clicked
if (SwingUtilities.isLeftMouseButton(e)) {
System.out.println("Left");
}
// If right mouse button is clicked
else if (SwingUtilities.isRightMouseButton(e)) {
System.out.println("Right");
}
}
@Override
public void mouseClicked(MouseEvent e) {
MapCalculations(e);
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
public void mouseDragged(MouseEvent e) {
MapCalculations(e);
}
}
3 Réponses :
Les méthodes d'auditeur de souris ne sont jamais appelées car le framework ne sait pas quand les appeler.
Essayez d'ajouter l'auditeur de souris à votre code> objet code> dans la méthode principale en tant que telle: < / p>
Ouais, je vois ça maintenant
Ne vous sentez pas stupide, je ne peux pas vous dire combien de fois j'ai oublié d'ajouter l'auditeur ...
La méthode n'est jamais appelée parce que vous n'ajoutez jamais un auditeur de souris à rien.
Vous voulez probablement, dans le constructeur principal, p> Vous devez vraiment respecter les conventions de nommage Java. Méthodes commencent par un charier minuscule. Et vous ne devriez pas utiliser peinture () code> pour dessiner des composants swing. Lire Tutoriel . P> P>
Ne pas être en désaccord avec la réponse, mais la première ligne "Vous n'ajoutez jamais d'auditeur de souris à quoi que ce soit" peut être lu comme "vous Devrait i> Ne jamais ajouter un auditeur de souris à quoi que ce soit" (comment je le lisions initialement et a ensuite été confondu par les conseils de la ligne suivante ...). Je considérerais une reformulation pour rendre le sens voulu plus clair.
Voici un pourboire. Implémentez votre mouselistener dans une classe intérieure.
window.addMouseListener(new MyMouseListener());