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

Insercion de imagen

Estas en el tema de Insercion de imagen en el foro de Java en Foros del Web. Tengo el siguiente codigo y me quiero insertarle una imagen a la "matriz" de JLabel, ya que también lo necesito que este en "pedazos" para ...
  #1 (permalink)  
Antiguo 26/03/2013, 12:53
 
Fecha de Ingreso: marzo-2013
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Insercion de imagen

Tengo el siguiente codigo y me quiero insertarle una imagen a la "matriz" de JLabel, ya que también lo necesito que este en "pedazos" para un rompecabezaz seria de mucha ayuda que me proporcionaran o me dijeran como hacerlo, muchas gracias.

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

public class menupuzz extends JFrame {

public menupuzz () {
Image imagen;
JMenuBar menup;
JMenu archivo;
JMenu opciones;
JMenuItem abrir;
JMenuItem guardar;
JMenuItem reporte;
JMenuItem salir;
JMenuItem cargar;
JMenuItem desordenar;
JMenuItem pausa;
JMenuItem historial;

setTitle("Menú de Puzzle");


menup=new JMenuBar();
archivo=new JMenu("Archivo");
opciones=new JMenu("Opciones");
abrir=new JMenuItem("Abrir Juego");
guardar=new JMenuItem("Guardar Juego");
reporte=new JMenuItem("Reporte");
historial=new JMenuItem("Historial de Ganadores");
salir=new JMenuItem("Salir del Juego");
cargar=new JMenuItem("Cargar Imagen");
desordenar=new JMenuItem("Desordenar imagen");
pausa=new JMenuItem("Pausar el Juego");



JLabel partes[]=new JLabel[9];
JPanel p1=new JPanel();
p1.setLayout(new GridLayout(4,2,5,5));
for(int i=0;i<partes.length;i++){
partes[i]= new JLabel(Integer.toString(i+1));
p1.add(partes[i]);
}

salir.addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e) {
menupuzz.this.windowClosed();
}
}
);

this.add(p1);
menup.add(archivo);
archivo.add(abrir);
archivo.add(guardar);
archivo.add(reporte);
archivo.add(salir);

menup.add(opciones);
opciones.add(cargar);
opciones.add(desordenar);
opciones.add(pausa);
opciones.add(historial);


setJMenuBar(menup);
pack();
show();
setSize(new Dimension(500,400));
}

public static void main(String[] args) {

menupuzz objmenu;
objmenu=new menupuzz();



}
public boolean handleEvent(Event evt)
{
if(evt.id==Event.WINDOW_DESTROY)
{
System.exit(0);
}
return super.handleEvent(evt);
}
protected void windowClosed() {
System.exit(0);
}
}
  #2 (permalink)  
Antiguo 26/03/2013, 12:55
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: Insercion de imagen

Muevo tu consulta al foro de Java, es el lugar correcto.

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 26/03/2013, 14:53
 
Fecha de Ingreso: febrero-2013
Ubicación: Santiago
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Insercion de imagen

Lo que yo haria seria partir la imagen en la cantidad de JLabel que tengas (en este caso 9), guardas las imagenes con un arreglo de 9(o matriz 3x3) y luego insertarlas al JLabel (con setIcon()). Agregar que editar algo asi se puede hacer hasta con paint.

Si se desea tener la foto completa, tendrias que crear un metodo que obtenga el cuadro que deseas obtener y pegarla al JLabel (al menos eso haria yo)

Si existe una mejor forma me gustaria saberlo ya que como digo a cada rato tambien estoy aprendiendo.

Espero te sirva,saludos.
  #4 (permalink)  
Antiguo 26/03/2013, 15:03
 
Fecha de Ingreso: marzo-2013
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Insercion de imagen

Muchas gracias por tu respuesta pero se me olvido mencionar que el rompecabezas debe ser capaz de desordenar la foto que el usuario desee, la que el elija. Muchas Gracias
  #5 (permalink)  
Antiguo 26/03/2013, 16:52
 
Fecha de Ingreso: febrero-2013
Ubicación: Santiago
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Insercion de imagen

Cita:
Iniciado por ipc1 Ver Mensaje
Muchas gracias por tu respuesta pero se me olvido mencionar que el rompecabezas debe ser capaz de desordenar la foto que el usuario desee, la que el elija. Muchas Gracias
Si lo deseas hacer con eventos de mouse podrias hacerlo con mouse dragged (obtener el punto en donde el mouse hizo click, ver a que JLabel pertenece y ver si paso a otro JLabel) si lo deseas hacer por teclado, podrias hacer click en la imagen para seleccionarla y luego moverla con el teclado o bien asignar un numero a cada imagen para seleccionarla y moverla con las flechas de direccion para repintar.
  #6 (permalink)  
Antiguo 26/03/2013, 17:17
 
Fecha de Ingreso: marzo-2013
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Insercion de imagen

Eso que me acabas de decir si que ayudara mucho pero hasta cuando sea capaz de poder insertar la imagen en el JLabel y muchas gracias pero a lo que yo me refiero es que no se como hacer para que la imagen que el usuario desee "cargar" se corte en pedazos y que se muestre en el JLabel , ademas que esto lo pueda hacer cualquier imagen que se cargue al rompecabezas (la que el usuario quiera). No va a ser una imagen predeterminada.

Cita:
Iniciado por Cidragon Ver Mensaje
Si lo deseas hacer con eventos de mouse podrias hacerlo con mouse dragged (obtener el punto en donde el mouse hizo click, ver a que JLabel pertenece y ver si paso a otro JLabel) si lo deseas hacer por teclado, podrias hacer click en la imagen para seleccionarla y luego moverla con el teclado o bien asignar un numero a cada imagen para seleccionarla y moverla con las flechas de direccion para repintar.
  #7 (permalink)  
Antiguo 26/03/2013, 17:47
 
Fecha de Ingreso: febrero-2013
Ubicación: Santiago
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Insercion de imagen

Creo que aun estoy un poco enredado XD.
¿el usuario puede elegir entre un abanico de posibilidades que tu desees o el usuario puede abrir cualquier imagen del pc?
Si el usuario es el que elige,supongo que lo que quieres hacer para cargar la imagen tiene que ver con archivos y flujos tema que lamentablemente aun no aprendo por lo cual en eso no te puedo ayudar. Sin embargo, en cuanto a la imagen al cargar la imagen podrias usar el metodo getHeight y getWidth (o getIconheight...) para obtener sus medidas, luego esos los divides por 3 y obtienes de que tamaño quieres los JLabel para luego pintar la imagen(aqui yo haria como dije un metodo el cual guardara en un arreglo las partes de la imagen para luego usarlas como habia recomendado).

Creo que hasta ahi te puedo ayudar y espero te sirva, saludos.
  #8 (permalink)  
Antiguo 26/03/2013, 17:56
 
Fecha de Ingreso: marzo-2013
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Insercion de imagen

Me disculpo por no haberme explicado bien desde el principio pero si creo que es con archivos y flujos ya que dejame contarte que tengo que hacer un rompecabezas y al abrir la ventana del juego en el menú opciones el usuario elige "cargar imagen" y el puede elegir la imagen que el tenga en su Pc y despues de esto la imagen se le mostrara en la "Matriz" que esta en el codigo que puse y después el mismo usuario puede elegir "desordenar imagen" para poder empezar a jugar, y lo que yo no puedo hacer es como cargar cualquier imagen que yo quiera y mostrarla en la "matriz", espero haberme entendido y de nuevo muchas gracias por tu ayuda.

Cita:
Iniciado por Cidragon Ver Mensaje
Creo que aun estoy un poco enredado XD.
¿el usuario puede elegir entre un abanico de posibilidades que tu desees o el usuario puede abrir cualquier imagen del pc?
Si el usuario es el que elige,supongo que lo que quieres hacer para cargar la imagen tiene que ver con archivos y flujos tema que lamentablemente aun no aprendo por lo cual en eso no te puedo ayudar. Sin embargo, en cuanto a la imagen al cargar la imagen podrias usar el metodo getHeight y getWidth (o getIconheight...) para obtener sus medidas, luego esos los divides por 3 y obtienes de que tamaño quieres los JLabel para luego pintar la imagen(aqui yo haria como dije un metodo el cual guardara en un arreglo las partes de la imagen para luego usarlas como habia recomendado).

Creo que hasta ahi te puedo ayudar y espero te sirva, saludos.

Etiquetas: programación-general
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 13:59.