Oppure

Loading
04/06/10 17:49
S0n1C
ho un piccolo problemino con il metodo paint in poche parole devo disegnare delle linee con il mouse ed ho implementato come segue:

.....
 public void mousePressed(MouseEvent e) {
        if (count < 5) {
            count++;
            lastX = e.getX();
            lastY = e.getY();

        } else {
            JOptionPane.showMessageDialog(null, "numero massimo di mosse consentite, si prega di cambiare giocatore");

            
        }

    }

    public void mouseReleased(MouseEvent e) {
         currentx=e.getX();
         currenty=e.getY();
         
    }

public void mouseDragged(MouseEvent e) {
         currentx=e.getX();
         currenty=e.getY();
         repaint();
    }
......
......
public void paint(Graphics g) {
        super.paint(g);
        if(b2.isEnabled()){
            g.setColor(Color.red);
        }else{
            g.setColor(Color.BLACK);
        }
        g.drawLine(lastX, lastY, currentx, currenty);
    }

senza considerare che b1 e b2 sono dei bottoni implementati nel resto della classe.il mio problema è che riesco a tracciare la prima linea ma quando vado a tracciare la seconda ,la prima scompare come posso ovviare al problema?
Mi sono accorto che il super.paint(g) è la causa del problema ma eliminandolo invece di comparire una sola linea allo spostamento del mouse ne compaiono molte di più come fare?
aaa
05/06/10 0:14
paoloricciuti
Eh in effetti si, perchè il super che richiami richiama il paint del pannello, che di default è senza linee. Una soluzione potrebbe essere di salvare tutte le coordinate in una arraylist e poi scorrelra tutta ridisegnando ogni volta.
aaa
05/06/10 21:15
S0n1C
grazie mille ho risolto come mi hai consigliato,in effetti è l'unica soluzione credo
aaa
06/06/10 0:32
paoloricciuti
Di niente. ;)
aaa
05/12/10 8:51
killer
dopo la creazione di una linea, come faccio a cancellare solo i pixel interessati ?!!
tipo il paint di windows... io disegno una linea poi clicco sulla "gomma" mi posiziono con il mouse sopra e cancello solo la zona interessata... concettualmente come dovrei fare ? fatemi sapere presto.grazie
aaa
05/12/10 13:05
paoloricciuti
Postato originariamente da killer:

dopo la creazione di una linea, come faccio a cancellare solo i pixel interessati ?!!
tipo il paint di windows... io disegno una linea poi clicco sulla "gomma" mi posiziono con il mouse sopra e cancello solo la zona interessata... concettualmente come dovrei fare ? fatemi sapere presto.grazie

Potresti disegnare un rettangolo del colore dello sfondo!
aaa