Cory
01-06-2009, 15:21
Ciao a tutti. Sto implementando un piccolo programma che disegna su un pannello un cerchio quando viene premuto il tasto del mouse. Ho reimplementato quindi il metodo paintComponent(), ma non riesco a capire come chiamarlo all'interno della classe che implementa il MouseListener. Qualcuno puņ aiutarmi?
package esame2;
import java.awt.*;
import javax.swing.*;
public class Esame2 extends JFrame{
public static void main(String [] args){
JFrame frame=new JFrame("Programma");
frame.setSize(300, 300);
frame.setContentPane(new MyPanel());
frame.setVisible(true);
frame.setResizable(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
public class MyPanel extends JPanel{
JPanel x;
public MyPanel(){
this.setBackground(Color.GREEN);
this.addMouseListener(new Disegno());
}
class Disegno implements MouseListener{
public void mouseClicked(MouseEvent e) {
paintComponent(g);
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.fillOval(10, 10, 10, 10);
}
}
}
PS: il metodo disegna la figura sempre nello stesso posto, una volta risolta la cose farņ in modo che il metodo prenda dal pannello le coordinate X e Y dove si trova il mouse al momento del click :)
package esame2;
import java.awt.*;
import javax.swing.*;
public class Esame2 extends JFrame{
public static void main(String [] args){
JFrame frame=new JFrame("Programma");
frame.setSize(300, 300);
frame.setContentPane(new MyPanel());
frame.setVisible(true);
frame.setResizable(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
public class MyPanel extends JPanel{
JPanel x;
public MyPanel(){
this.setBackground(Color.GREEN);
this.addMouseListener(new Disegno());
}
class Disegno implements MouseListener{
public void mouseClicked(MouseEvent e) {
paintComponent(g);
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.fillOval(10, 10, 10, 10);
}
}
}
PS: il metodo disegna la figura sempre nello stesso posto, una volta risolta la cose farņ in modo che il metodo prenda dal pannello le coordinate X e Y dove si trova il mouse al momento del click :)