Foros del Web » Programación para mayores de 30 ;) » Java »

applet's no repinta

Estas en el tema de applet's no repinta en el foro de Java en Foros del Web. holas a todos aqui les paso el cod y al final les digo q me falla espero me podais ayudar saludos Código: /* * Dibujo.java ...
  #1 (permalink)  
Antiguo 24/11/2005, 09:48
Avatar de rockobop  
Fecha de Ingreso: octubre-2004
Ubicación: Bolivia
Mensajes: 826
Antigüedad: 19 años, 6 meses
Puntos: 1
Pregunta applet's no repinta

holas a todos aqui les paso el cod y al final les digo q me falla espero me podais ayudar saludos
Código:
/*
 * Dibujo.java
 *
 * Created on 18 de noviembre de 2005, 22:33
 *
 * Dibujo es un applet que pinta con los movimientos del mouse 
 * diseños no predeterminados a gusto del usuario en un Browser
 */

/**
 *
 * @version:1.1
 */
import java.awt.event.*;
import java.awt.*;
import java.applet.*;



/**
 *La clase Dibujo contiene los metodos main e init primordiales
 *para la visualizacion del applet en el Brouser
 *
*/
public class Dibujo extends Applet implements MouseListener,MouseMotionListener{
    
    Panel panel;
    int x1,y1;
    boolean primera=true;
    
    
    //Label label1,label2,label3,label4;
        
        
    // poniendo el panel de dibujo dentro del metodo init para que
    // lo inicialice al ejecutar el applet en el Brouser
    public void init() {
    
    
    panel = new Panel();
    
    setBackground(Color.GREEN);
    
    addMouseMotionListener(this);
    addMouseListener(this);
        
    
    //setLayout(new BorderLayout());
    //add("Center", panel);
    
    }

    /**
     * Metodo main de creacion y carga del applet
     **/
    /*public static void main(String args[]) {
    
    Dibujo dibujo = new Dibujo();
    dibujo.init();
    
    }*/
    
    /**
     *implementando metodo mouseDragged para agarrar el evento
     *de que cuando se mueva el raton y pinte en el area de diseño
     *
     *las variables x1,y1 son las q gurdan las posiciones del mouse
     *para dibujar en el area de diseño.
     * 
     *La llamada al metodo repaint(); es para repintar el 
     *area de diseño 
     */
    public void mouseDragged(MouseEvent e) {
        
         x1 = e.getX();
         y1 = e.getY();
                
        repaint();
    }

    public void mouseMoved(MouseEvent e) {
    }

    /**
     *implementando metodo mousePressed para agarrar el evento
     *de que cuando se presione el raton y pinte en el area de diseño
     *
     *las variables x1,y1 son las q gurdan las posiciones del mouse
     *para dibujar en el area de diseño.
     *
     *y la llamada al metodo repaint(); es para repintar el 
     *area de diseño
     */ 
    public void mousePressed(MouseEvent e) {
        
        primera=false;
        setBackground(Color.GREEN);
        
        x1 = e.getX();
        y1 = e.getY();
                     
        repaint();
          
    }    

    public void mouseReleased(MouseEvent e) {
    }

    public void mouseEntered(MouseEvent e) {
    }

    public void mouseExited(MouseEvent e) {
    }
    
    public void mouseClicked(MouseEvent e) {
        
    }

    /**
     *metodo paint donde se crea el dijujo a pintarse en el area de diseño
     *en este caso pinta un ovalo de color negro, en las posiciones
     *x1,y1, q corresponden a las posisiones del mouse 
     *con 10 pixeles de alto y ancho
     *
     *@param : Graphics g 
     */
     
    
    public void paint(Graphics g) {
    
    
    if(primera==true){
        
        g.drawString("PRESIONE EL MOUSE PARA DIBUJAR",100,20);
        g.setColor(Color.black);
        g.fillOval(x1,y1,10,10);
        
        g.drawString("despues de hacer clic debe quedar pantalla verde",10,300);
        g.drawString(""+primera,10,10);
    }
    if(primera==false){
        
        
        g.setColor(Color.black);
        g.fillOval(x1,y1,10,10);
        g.drawString(""+primera,10,20);
            
    }
    
}
    
    /**
     *metodo update que actualiza el area del grafico despues de
     *un evneto y deja el area de diseño lista como quedo despues
     *de la ultima accion para seguir trabajando sobre el
     *
     *@param : Graphics g 
     *
     **/
    public void update (Graphics g)
    {
        paint(g);
        }
    
}
bueno espero q les haya sido sencillo con los comentarios, lo q quiero hacer es q cuando la variable primera sea igual a false el aplet sea verde sin ninguna linea solo verde lista para dibujar con el mouse, ya inetente de mil manera y no logro hacerlo espero me pueda ayudar, otra cosita mas, cuando ejecuto el applet en un browser esta todo ok pero si pinto algo y habro cualquier otra ventana o aplicacion se borra lo pintado, alguien sabe puede ser por q sucede esto????
gracias
saludos
__________________
:pensando: Tú no necesitas un libro mágico, un gurú carismático, rituales primitivos. Sólo necesitas tus cinco sentidos.:adios:
  #2 (permalink)  
Antiguo 24/11/2005, 10:58
msi
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 19 años, 2 meses
Puntos: 0
Estoy un poco pegao de paint pero por decirte algo, no veo getGraphics:
....
Image backbuffer;
Graphics g;

backbuffer = createImage( width, height );
g = backbuffer.getGraphics();

Aquí te dejo un enlace que me sirvió de mucha ayuda:
http://www.dgp.toronto.edu/~mjmcguff...a/08-painting/

Suerte.
  #3 (permalink)  
Antiguo 24/11/2005, 11:28
Avatar de rockobop  
Fecha de Ingreso: octubre-2004
Ubicación: Bolivia
Mensajes: 826
Antigüedad: 19 años, 6 meses
Puntos: 1
gracias lo voy a revisar auqnue no entiendo muy bien eso de backbufer como trabajar para tratar de adaptarlo a mi codigo, alguien mas q me pueda ayudar especialmente en el problema del primer click?
saludos
__________________
:pensando: Tú no necesitas un libro mágico, un gurú carismático, rituales primitivos. Sólo necesitas tus cinco sentidos.:adios:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:07.