|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Messaggi: n/a
|
[J2Me]Problema Con Un Programma Semplice Tipo Paint
Codice:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Disegna extends MIDlet {
public void startApp() {
Display display = Display.getDisplay(this);
display.setCurrent(new Linea());
} // startApp
public void pauseApp() {
} // pauseApp
public void destroyApp(boolean unconditional) {
} // destroyApp
protected class Linea extends Canvas {
private int xAtt, yAtt, xPrec, yPrec;
private boolean primoTouch = true;
public Linea() {
setFullScreenMode(true);
} // Linea
public void pointerReleased (int x, int y) {
primoTouch = true;
} // pointReleased
public void pointerDragged (int x, int y) {
if(primoTouch) {
xAtt = x;
yAtt = y;
primoTouch = false;
} // if
xPrec = xAtt;
yPrec = yAtt;
xAtt = x;
yAtt = y;
repaint();
} // pointDragged
public void paint (Graphics g) {
g.drawLine(xPrec, yPrec, xAtt, yAtt);
} // paint
} // Linea
} // Disegna
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
e' un po' che non bazzico più j2me (diciamo una decina d'anni, via) ma a naso quel codice disegna 1 linea sola che inizia dal punto del trascinamento precedente a quello successivo. A video apparirebbe un singolo trattino, di volta in volta rinnovato, che segue "il dito".
Se vuoi disegnare una linea continua devi accumulare i punti: Codice:
punti = new short[1000]
int cursor = 0
...
pointerPressed(x, y)
punti[cursor++] = (short)x
punti[cursor++] = (short)y
...
pointerDragged(x,y)
if(cursor < punti.length - 1) {
punti[cursor++] = (short)x
punti[cursor++] = (short)y
repaint()
}
...
pointerReleased(x, y)
cursor = 0;
repaint();
....
paint(Graphics g)
for(int i = 2; i < cursor - 2; i+=2)
g.drawLine(punti[i-2], punti[i -1], punti[i], punti[i+1])
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 |
|
Messaggi: n/a
|
Ma il codice che ho fatto io non disegna già ogni volta una linea che va da (xPrec, yPrec) a (xAtt, yAtt)??
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Il buffer a cui accedi con "graphics" è cancellato ad ogni invocazione del metodo paint prima di applicare il nuovo disegno, così quello che ci hai disegnato sopra la volta prima scompare.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#5 |
|
Messaggi: n/a
|
perfetto.. funziona! grazie..
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:50.



















