heilà ragassi pare ultimamente che gli eventi siano in sciopero, parlo di MouseMotionListener e ComponentListener...vi spiego:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.LinkedList;
import java.util.Iterator;

public class TerraceGraphic extends JPanel{
private LinkedList pointsList;
private double xScale,yScale;
private boolean paint;

public TerraceGraphic(){
addMouseListener(new MListener());
addMouseMotionListener(new MMotionListener());
addComponentListener(new CListener());

pointsList=new LinkedList();
paint=false;
}

public class CListener implements ComponentListener{
public void componentHidden(ComponentEvent e){}
public void componentMoved(ComponentEvent e){}
public void componentResized(ComponentEvent e){}

public void componentShown(ComponentEvent e){
xScale=getWidth()/Constants.GRID_WIDTH;
yScale=getHeight()/Constants.GRID_HEIGHT;
repaint();
}
}

public class MListener implements MouseListener{
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}

public void mousePressed(MouseEvent e) {
button=e.getButton();
Point point=new Point((int)(e.getX()/xScale),(int)(e.getY()/ yScale));

paint = true;
pointsList.clear();
pointsList.add(point);
}
}

public class MMotionListener implements MouseMotionListener {
public void mouseDragged(MouseEvent e) {
button=e.getButton();
Point point=new Point((int)(e.getX()/xScale),(int)(e.getY()/yScale));

pointsList.clear();
pointsList.add(point);

repaint();
}

public void mouseMoved(MouseEvent e){}
}

public void paint(Graphics g){
super.paint(g);

Graphics2D g2D=(Graphics2D)g;
setScale(g2D);

if (paint){
if (button==MouseEvent.BUTTON1){
drawPoint((Point)pointsList.get(0));//funz.gia definita
}
if (button==MouseEvent.BUTTON3){
cleanPoint((Point)pointsList.get(0));//funz.gia definita
}
}
}
}

allora...non verificandosi l'evento ComponentListener non posso avere i fattori di scala! non funziona se xScale e yScale le assegno nel costruttore, perchè getWidth() e getHeight() ritornerebbero zero;
e poi come vedete il codice di MouseMotionListener è uguale a quello di MouseListener...ma non va!! se clicco su un punto del grafico mi disegna il quadratino, ma in trascinamento non mi disegna proprio nulla...però almento quest'evento si verifica, ho fatto dei test, non è come ComponentListener che invece fa il dormiente!!!

ho voluto usare un LinkedList per contenere i punti perchè in altri usi di MouseMotionListener ho bisogno di sapere tutti i punti di una certa funzione, per poter disegnare linee rette, cerchi e rettangoli...come un programma di disegno!

bene bene...ora...aiutooo!!!! :master: