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

Modificar Image en Applet

Estas en el tema de Modificar Image en Applet en el foro de Java en Foros del Web. Hola, estoy dando mis primeros pasos para crear un applet que haga algo parecido al Paint. He creado lo básico y ya tengo problemas debido ...
  #1 (permalink)  
Antiguo 18/10/2005, 15:44
msi
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 19 años, 2 meses
Puntos: 0
Modificar Image en Applet

Hola, estoy dando mis primeros pasos para crear un applet que haga algo parecido al Paint. He creado lo básico y ya tengo problemas debido a que no controlo mucho. Os explico:

El applet carga una imagen vacía y dibujo sobre ella. Para ello escribo:

import java.applet.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

public class rgrafica extends Applet implements MouseMotionListener{
Image img;
Graphics grafico;

public void init() {
img = createImage(400,400);
grafico = img.getGraphics();

setBackground(Color.gray);
grafico.setColor(Color.red);

addMouseMotionListener(this);
}


public void mouseMoved(MouseEvent e){}

public void mouseDragged(MouseEvent e){
int x = e.getX();
int y = e.getY();
grafico.fillOval(x-5,y-5,10,10);
repaint();
e.consume();
}


public void paint( Graphics g ) {
g.drawImage(img,25,25,this);
}
}


Esto funciona bien pero yo quiero dibujar sobre "una imagen" y no sobre "una imagen vacía". Para cargar una imagen he visto esto:

img = getImage(getDocumentBase(),"applets/plantilla.jpg");

Pero de esta forma no consigo dibujar encima ya que no puedo crear el Gráfico. Mirando las apis he visto que en:

Con java.awt.Component puedo utilizar:
img = createImage(400,400);
grafico = img.getGraphics();

pero que al utilizar getImage() estoy usando la clase java.awt.Toolkit y en esta clase no viene método getGraphics().

¿Sabeis alguna manera para poder cargar una imagen y poder modificar sobre ella? ¿Tengo que emplear otro tipo de datos?

Un saludo.
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 12:18.