Eh bien mon anglais n'est pas très bon mais je vais essayer d'expliquer.Java repaint méthode ne fonctionne pas, pourquoi?
J'ai été faire deux classes, First Class et Second Class (Deuxième a été nommé "Grafika").
Je veux que mon rectangle se déplace à la position où j'ai été cliqué, mais évidemment il ne bouge pas et je ne comprends pas pourquoi, s'il vous plaît aider.
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class Grafika extends JPanel implements MouseListener{
static int x=0,y=0;
@Override
public void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.fillRect(x, y, 20, 30);
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub``
x=arg0.getX();
y=arg0.getY();
this.repaint(x, y, 20, 30);
}
je vais vous montrer un code complet, il était petit .Ce deuxième était class.And mon (je pense) seul problème est la méthode repeindre(). Pourquoi je ne sais pas: D.
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class Grafika extends JPanel implements MouseListener{
static int x=0,y=0;
@Override
public void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.fillRect(x, y, 20, 30);
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
x=arg0.getX();
y=arg0.getY();
this.repaint(x, y, 20, 30);
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
Maintenant, je vais vous montrer la première classe d'où j'appelais deuxième classe.
import java.awt.*;
import javax.swing.*;
public class Glavna extends Grafika {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Grafika g=new Grafika();
JFrame wi=new JFrame("Grafika");
wi.setBounds(50, 50, 500, 600);
wi.add(g);
wi.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
wi.setVisible(true);
}
}
Concernant: '" Et mon (je pense) seul problème est la méthode repaint() Pourquoi je ne sais pas "' - n o, comme nous l'avons tous dit, vous n'ajoutez aucun MouseListener à quoi que ce soit. –
Vous avez raison, merci. –