Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - disegno su jPanel
Forum - Java - disegno su jPanel

Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 15:54
Venerdì, 03/12/2010
salve...vorrei capire un particolare...
io ho una jlabel ..che vorrei si muovesse a scorrimento su jPanel.
ho provato a creare una classe MyClass extends JPanel implements Runnable

private JLabel label;
public MyClass(JLabel label){
   this.label=label;
}
@Override
public void run(){
    for(; ; ){
       label.setLocation(label.getX()+=1,label.getY());
       repaint();// il metodo repaint() non entra nel paintComponent()...
    }
}

public void paintComponent(Graphics g){
    super.paintComponent(g);
    g.draw........ ?!!! // non trovo il metodo che mi faccia settare in un altra posizione
                                la jLabel.. io vorrei scorresse in un ciclo infinito intervallato    da 1000 millis.
}

mi aiutate ? ho provato in primis con la setLocation... la label si muove ma lampeggiando... io vorrei che non accadesse cio..ossia vorrei disegnare il component vero e proprio su jpanel  sovrascrivendo paintComponent... come posso fare tutto cio ? fatemi sapere presto.grazie.

Ultima modifica effettuata da killer il 03/12/2010 alle 15:54
PM Quote
Avatar
paoloricciuti (Ex-Member)
Pro


Messaggi: 137
Iscritto: 27/04/2010

Segnala al moderatore
Postato alle 16:54
Venerdì, 03/12/2010
Testo quotato

Postato originariamente da killer:

salve...vorrei capire un particolare...
io ho una jlabel ..che vorrei si muovesse a scorrimento su jPanel.
ho provato a creare una classe MyClass extends JPanel implements Runnable

private JLabel label;
public MyClass(JLabel label){
   this.label=label;
}
@Override
public void run(){
    for(; ; ){
       label.setLocation(label.getX()+=1,label.getY());
       repaint();// il metodo repaint() non entra nel paintComponent()...
    }
}

public void paintComponent(Graphics g){
    super.paintComponent(g);
    g.draw........ ?!!! // non trovo il metodo che mi faccia settare in un altra posizione
                                la jLabel.. io vorrei scorresse in un ciclo infinito intervallato    da 1000 millis.
}

mi aiutate ? ho provato in primis con la setLocation... la label si muove ma lampeggiando... io vorrei che non accadesse cio..ossia vorrei disegnare il component vero e proprio su jpanel  sovrascrivendo paintComponent... come posso fare tutto cio ? fatemi sapere presto.grazie.



In realtà quello che fa il jPanel è esattamente disegnare la Jlabel su se stesso. In pratica: non serve che fai tutto questo. Basta aggiungere una classe che implementa Runnable (come inner class) direttamente nella classe che estende JFrame. Da qui fa il setLocation della label e metti un bel Thread.sleep(1000). Tutto qui.

PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 20:52
Sabato, 04/12/2010
ah ok... :) grazie mille... !!! :)

PM Quote