Java - Cambio de imagen en PanelImagenPanoramica

 
Vista:

Cambio de imagen en PanelImagenPanoramica

Publicado por Pel (15 intervenciones) el 04/09/2006 19:56:17
Hola la mayor parte del código la he tomado "prestada" de la pagina de Chuidiang.

El problema es que quiero que al pulsar el boton1 me cambie la imagen actual por la procesada os paso el código ( LO HE EXPLICADO EN EL CODIGO LO MEJOR POSIBLE):

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

import java.awt.event.*;
import java.applet.Applet;


public class Ventana extends JApplet implements MouseListener, MouseMotionListener
{ PixelGrabber pg;
JButton boton1,boton2,boton3,boton4;
Image img,image2;
PanelImagenPanoramica pan;
int pulsado=0;
int pixels[];
JTextField campoTexto ;
/**
* Constructor por defecto.
*/


public void init()
{


img = this.getImage(getDocumentBase(),"image.jpg");// tiene que ser por ahora una imagen de 480*360

pan=new PanelImagenPanoramica(img);// ESTE CODIGO TB ES DE CHUIDIANG PERO LE PUESTO PARAMETRO DE ENTRADA LA IMAGEN EN EL CONSTRUCTOR
pan.addMouseListener(this);

pan.addMouseMotionListener(this);
this.getContentPane().setLayout(new GridBagLayout());

GridBagConstraints constraints = new GridBagConstraints();

constraints.gridx = 0;
constraints.gridy = 0;
constraints.gridwidth = 2;
constraints.gridheight = 2;
constraints.anchor = GridBagConstraints.CENTER;
constraints.fill = GridBagConstraints.BOTH;

constraints.weighty = 1.0;


this.getContentPane().add (pan, constraints);

constraints.weighty = 0.0;


boton1 = new JButton ("Boton 1");
// boton1.setActionCommand("BOTON1");

constraints.gridx = 2;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
constraints.weighty = 1.0;
// El botón 1 debe ocupar la posición NORTH de su celda
constraints.anchor = GridBagConstraints.NORTH;
// El botón 1 no debe estirarse. Habíamos cambiado este valor en el
// area de texto, asi que lo restauramos.
constraints.fill = GridBagConstraints.NONE;
this.getContentPane().add (boton1, constraints);
constraints.anchor = GridBagConstraints.CENTER;
constraints.weighty = 0.0;

boton2 = new JButton ("Boton 2");
constraints.gridx = 2;
constraints.gridy = 1;
constraints.gridwidth = 1;
constraints.gridheight = 1;
constraints.weighty = 1.0;
// El boton 2 debe ocupar la posición NORTH de su celda.
constraints.anchor = GridBagConstraints.NORTH;
this.getContentPane().add (boton2, constraints);
constraints.weighty = 0.0;
constraints.anchor = GridBagConstraints.CENTER;

boton3 = new JButton ("Boton 3");
constraints.gridx = 0;
constraints.gridy = 2;
constraints.gridwidth = 1;
constraints.gridheight = 1;
this.getContentPane().add (boton3, constraints);

boton4 = new JButton ("Boton 4");
constraints.gridx = 2;
constraints.gridy = 2;
constraints.gridwidth = 1;
constraints.gridheight = 1;
this.getContentPane().add (boton4, constraints);



campoTexto = new JTextField ("Campo text");



constraints.gridx = 1;
constraints.gridy = 2;
constraints.gridwidth = 1;
constraints.gridheight = 1;
constraints.weightx = 1.0;
// El campo de texto debe estirarse sólo en horizontal.
constraints.fill = GridBagConstraints.HORIZONTAL;
this.getContentPane().add (campoTexto, constraints);



///////////////ACCION BOTON 1/////////////////////////////////////////////////////////////

boton1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
campoTexto.setText("Pulsado boton1");

pixels=new int[480*360];
pg=new PixelGrabber(img,0,0,480,360,pixels,0,480);

try {
pg.grabPixels();
}
catch (InterruptedException ev){}



// campoTexto.setText(new Integer(pixels[100]).toString());

// campoTexto.setText(new Integer(pixels.length).toString());

for (int loop_index=0;loop_index<480*360;loop_index++){
int p=pixels[loop_index];
int red=(0xff & (p>>16))-200;
int green=(0xff & (p>>8))-200; // Lo unico que hace esto ,bajar el brillo
int blue=(0xff & p)-200;

if (red<0) red =0; // para que no de valores negativos
if (green<0) green =0;
if (blue<0) blue =0;

pixels[loop_index]=(0xff000000|red<<16|green<<8|blue);
}

image2=createImage(new MemoryImageSource(480,360,pixels,0,480)); // guardo imagen modificada en otra Image


// PERO AHORA COMO LA VUELVO A PRESENTAR ???????????????????????????

}
});
////////////////////////////////////////////////////////////////////////////////////////////////////



//////////EL RESTO DE BOTONES AUN SIN UTILIDAD////////////////////////////////////////////////
boton2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
campoTexto.setText("Pulsado boton2");


}
});


boton3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
campoTexto.setText("Pulsado boton3");
}
});


boton4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
campoTexto.setText("Pulsado boton4");
}
});




}



//ESTO ES PARA EN UN FUTURO SELECCIONAR LOS PIXELES Y JUGAR CON ELLOS SOBRE LA IMAGEN///////////////////
public void mousePressed(MouseEvent e)
{
if ((e.getModifiers()&InputEvent.BUTTON1_MASK)==InputEvent.BUTTON1_MASK){


campoTexto.setText("Boton Izquierdo del raton pulsado en "+e.getX()+" "+e.getY());

}
else{

campoTexto.setText("Boton derecho del raton pulsado en "+e.getX()+" "+e.getY());
}
}

public void mouseClicked(MouseEvent e)
{
campoTexto.setText("Hio clic sobre el raton en "+e.getX()+" "+e.getY());
}

public void mouseReleased(MouseEvent e)
{
campoTexto.setText("Se solto el boton del raton.");
}
public void mouseEntered(MouseEvent e)
{
campoTexto.setText("Raton para introducir");
}

public void mouseExited(MouseEvent e)
{
campoTexto.setText("Raton para salir");
}

public void mouseDragged(MouseEvent e)
{
campoTexto.setText("Se arrastro el raton");
}
public void mouseMoved(MouseEvent e)
{
campoTexto.setText("Se movio el raton");
}



///////////////////////////////FIN JUGAR CON PIXELES///////////////////////////////////////////





}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder