style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

imagen con JFilechooser

que tal amigos alguna sugerencia para mi problema.... la idea es mostrar una imagenque selecciono con un jfilechosser el porblema es que no lo hace , si pongo la imagen fuera del boton si lo hae laguna sugerencia,

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.FileFilter;
import java.io.*;
public class Interfaz
{
        private JFrame frame;
 JPanel panel,dos;
 private JScrollPane scrollpane;
        private JButton pic;
        private JButton audio;
        private JButton salir;

    public Interfaz()
    {
        frame = new JFrame("JAVA MULTIMEDIA ");
                frame.setVisible(true);
                panel=new JPanel();
                panel.setLayout(null);
                panel.setVisible(true);
                frame.add(panel);
                //--------------------> contenido del marco <--------------------
                pic=new JButton("Imagen");
                pic.setBounds(10,50,100,30);
                panel.add(pic);
                //-------------------> fin boton pic <---------------------------
                audio=new JButton("Audio");
                audio.setBounds(10,130,100,30);
                panel.add(audio);
                //-------------------> fin boton audio <---------------------------
                salir=new JButton("Salir");
                salir.setBounds(10,200,100,30);
                panel.add(salir);
                        /*      ImageIcon imagen = new ImageIcon("Dirk-Nowitzki1.jpg");
                        JLabel etiqueta = new JLabel(imagen);
                        etiqueta.setBounds(20,30,60,36);
                panel.add(etiqueta);*/

                frame.setBounds(200,300,600,360);
        frame.setResizable(false);
                frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                pic.addActionListener(new ActionListener()
                {
                public void actionPerformed(ActionEvent e)
                {
                        JFileChooser selector=new JFileChooser();
                        selector.setFileFilter(new FiltroJava());
                        int estado=selector.showOpenDialog(null);
                        File archivoelegido=selector.getSelectedFile();
String                          ruta=archivoelegido.getPath();
                        if(archivoelegido.exists())
                                System.out.println("bien");
                        else
                                        System.out.println("no bien");
                        if(estado==JFileChooser.APPROVE_OPTION);
                        {
                                ImageIcon imagen = new ImageIcon("ruta");
                        JLabel etiqueta = new JLabel(imagen);
                        etiqueta.setBounds(20,30,60,36);

                                panel.add(etiqueta);
                        }

    }
        });//boton
        salir.addActionListener(new ActionListener()
                {
        public void actionPerformed(ActionEvent e)
        {
                System.exit(0);
        }
                });
    }//constructor

}//clase
<\code>

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de JaimeItlzc

JFilechooser

Por que asi?

 ImageIcon imagen = new ImageIcon("ruta");

Y no asi:

ImageIcon imagen = new ImageIcon(ruta);

Deberias de checar si la ruta esta bien:
System.out.print(ruta);

Ahora creo esto resolvera tu duda:
JFileShooser ImageIcon

Saludos.

Imagen de puzzlemaniaco

si ya habia checado ese link

si ya habia checado ese link y no le habia entendido, pero ya o soluciones efectivamente debe ser (ruta) y no "ruta" la solucion era sencilla el orden en que estaban las cosas ;

if(estado==JFileChooser.APPROVE_OPTION);
                        {

                                ImageIcon imagen = new ImageIcon(ruta);
                        JLabel etiqueta = new JLabel(imagen);
                        panel.add(etiqueta);
                        etiqueta.setBounds(20,30,60,36);

                        }

gracias por la ayuda

Imagen de Jose Manuel

Pues yo hice esto...

Weno chavo, aunque no le entendí muy bien a tu explicación creo que anda mas o menos por esto;

A mi se me ocurrió hacerlo de esa forma, vi que lo estas haciendo diferente por eso escogí otra forma, para que te basaras en ella.
La cosa esta en que no le entendía muy bien a tu código y por eso tarde bastante jeje.

Solo como consejo, trata de redactar mejor tus preguntas, eso te ayuda a ti, para que formules bien la cuestión y a los demás para que puedan ayudarte a resolverla.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.filechooser.FileNameExtensionFilter;

public class Imagen implements ActionListener
{
        private JFrame frame;
        private JLabel labelImagen;
        private JButton boton;
        private JPanel panelComponentes, panelImagen;
        private JFileChooser fileChooser;
        public static void main(String arg[])
        {
                //Bloque try-catch para atrapar los errores
                try
                {
                        //Look and Feel para la aplicacion dependiendo del sistema operativo
                        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }
               //Inicia la aplicacion
                new Imagen();
        }
        //Construtor de la clase
        public Imagen()
        {
                //Creando frame principal y obteniendo un Contenedor y un manejador BorderLayout
                frame = new JFrame("Abrir imagenes");
                frame.getContentPane().setLayout( new BorderLayout() );
               
                /**Creacion de componentes*/
               
                //Label
                labelImagen = new JLabel();
               
                //Boton
                boton = new JButton("Abrir archivo");
                //Seteando la propiedad actionCommand
                boton.setActionCommand("abre");
               
                //Creando paneles y añadiendolos al frame principal
                panelComponentes = new JPanel();
                panelComponentes.setLayout( new BorderLayout() );
                panelComponentes.add(boton, BorderLayout.CENTER);
                panelComponentes.setBorder( BorderFactory.createTitledBorder ("Abre la imagen...") );
                frame.add(panelComponentes, BorderLayout.NORTH);
                panelImagen = new JPanel();
                panelImagen.setLayout( new BorderLayout() );
                panelImagen.setBorder( BorderFactory.createTitledBorder ("Visualizacion de la imagen") );
                panelImagen.add( labelImagen, BorderLayout.CENTER);
                frame.add( panelImagen ,BorderLayout.CENTER );
               
                //Estableciendo visibilidad, tamaño y cierrre de la aplicacion
                frame.setVisible(true);
                frame.setBounds(500,200, 400, 600);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               
                //Agregando un escuchador al boton
                boton.addActionListener(this);
               
                //Creando FileChooser
                fileChooser = new JFileChooser();
                //Añadiendole un filtro
                FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & PNG", "jpg", "png");
                fileChooser.setFileFilter(filter);
        }
        //Metodo de accion para el boton
        public void actionPerformed(ActionEvent e)
        {
                if("abre".equals( e.getActionCommand() ) )
                {                      
                        //Valor que tomara el fileChooser
                        int regresaValor = fileChooser.showOpenDialog(null);   
                        //Accion del fileChooser
                        if(regresaValor == JFileChooser.APPROVE_OPTION)
                        {
                                //Crear propiedades para ser utilizadas por fileChooser
                                File archivoElegido = fileChooser.getSelectedFile();
                                //Obteniendo la direccion del archivo
                                String direccion = archivoElegido.getPath();
                                //Bloque try-catch para errores
                                try
                                {
                                        //Obtiene la direccion del archivo y lo instancia en icon
                                        ImageIcon icon = new ImageIcon( direccion );
                                        //Setea el labelImagen con el archivo obtenido
                                        labelImagen.setIcon( icon );
                                }
                                catch(Exception es)
                                {
                                        JOptionPane.showMessageDialog(null, "Upss!! error abriendo la imagen "+ es);
                                }
                        }
                }
        }
       
}

Aquí unos pantallazos de la aplicación.

El inicio

Abriendo la imagen

Colocando la imagen en el label

Espero que te sirva a ti o por lo menos a alguien. Aunque a mi me sirvió de practica :D

Oscar si ves mi código, no me regañes que aun no me acostumbro a escribirlo de el modo estándar u.u
ya se de donde saque esa costumbre, del libro de Deitel...

Imagen de Jose Manuel

Solo quedaría...

Ahora solo te faltaría modificar la imagen obtenida para que se vea y se ajuste a tu gusto o necesidades.
Y agregarle los componentes restantes. Que por cierto, yo leo mangas(comics japoneses) y aunque tengo una aplicación para leerlos( Comix ) me gustaría crear una propia :D
Haber si en esta semana hago una especie de prototipo o algo así...

Saludos!!

Imagen de puzzlemaniaco

pues ya es algo ke tenemos en

pues ya es algo ke tenemos en comun la lectura de mangas :)........... y gracias por la sugerencia aunque ya lo habia solucionado, y respecto a mi codigo no es tan dificil d entender lo que varia del tuyo es que los eventos los manejo en una clase interna(inner class) , una vez que ya tenia la imagen le agrege un scrollpane para irlarecorriendo.... aunque mi problema ahora es que no se actualiza la imagen , es decir selecciona la primera, seleciono la segunda y la muestra pero al recorrer el scroll regresa a la primera.
Un saludo y gracias por la otra alternativa sera una buena opcion para mi y mi novia jejejje

Imagen de Jose Manuel

¿Y por que no le seguimos? Si

¿Y por que no le seguimos?
Si hay errores, habria que intentar corregirlos, coloca lo que llevas del programa, o si sigues con el mismo codigo solo postea lo que cambiaste.

Imagen de puzzlemaniaco

Pues con el codigo que pongo

Pues con el codigo que pongo a continuacion ya me pone la imagen en el scroll , el problema es que la segunda la pone pero en el momento de poner la segunda y mover el scroll regresa a la primera , y por ahi hay unas variable spara audio pero en eso apenas empezare a trabajar ,.....

jajaja no habia checado que sigue siendo el mismo codigo pense que ayer no habia llegado hasta aca,t pido d favor que omitas leer este otra vez mejor mañana lo posteo cuando ya tenga lo de audio y haya corregido lo de la imagen ..... gracia por la ayuda

import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.sound.sampled.*;
public class Interfaz
{
  private JFrame frame;
  private JPanel panel;
  private JScrollPane scrollpane;
  private JButton pic;
  private JButton audio;
 private JButton salir;
 private JLabel etiqueta;
 private ImageIcon imagen;
 private JFileChooser selector;
 private File archivoelegido;
Clip clip;
    public Interfaz()
    {
     frame = new JFrame("JAVA MULTIMEDIA ");
     frame.setVisible(true);
  panel=new JPanel();
  panel.setLayout(null);
  panel.setVisible(true);
  frame.add(panel);
  //--------------------> contenido del marco <--------------------
  pic=new JButton("Imagen");
  pic.setBounds(10,50,100,30);
  panel.add(pic);
  //-------------------> fin boton pic <---------------------------
  audio=new JButton("Audio");
 
audio.setBounds(10,130,100,30);
  panel.add(audio);
  //-------------------> fin boton audio <---------------------------
  salir=new JButton("Salir");
  salir.setBounds(10,200,100,30);
  panel.add(salir);
 
     // scrollpane.setBounds(160,50,400,200);
  frame.setBounds(200,300,600,360);
     frame.setResizable(false);
  frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
  pic.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
    String   ruta;
         try
         {

     selector=new JFileChooser();
          selector.setFileFilter(new FiltroJava());
          int estado=selector.showOpenDialog(null);
          archivoelegido=selector.getSelectedFile();
      ruta=archivoelegido.getPath();
        if(estado==JFileChooser.APPROVE_OPTION);
          {
                imagen = new ImageIcon(ruta);
                etiqueta = new JLabel(imagen);
                scrollpane=new JScrollPane(etiqueta);
                panel.add(scrollpane);
                scrollpane.setBounds(160,10,410,300);
                scrollpane.setViewportView(etiqueta);
          }
         }
        catch( Exception npe )
         {

         }

    }
       });//boton
       salir.addActionListener(new ActionListener()
    {
       public void actionPerformed(ActionEvent e)
       {
         System.exit(0);
       }
        });

        audio.addActionListener(new ActionListener()
    {
       public void actionPerformed(ActionEvent e)
       {

  }

        });
    }//constructor

Imagen de Jose Manuel

El problema debe de estar en

El problema debe de estar en como y/o donde estas creando el JScrollPane

Por ejemplo en mi código, basto colocar estas lineas:
Primero reservar el objeto scroll
private JScrollPane scroll;

Despues crearlo y pasarle labelImagen
scroll = new JScrollPane( labelImagen );

Ahora que scroll contiene a labelImagen solo hay que agregarlo al panel. Nota que lo agrego al panel que antes contenía a labelImagen.

panelImagen.add( scroll , BorderLayout.CENTER );

Y no presenta el problema que mencionas de que ves la imagen anterior.
Saludos!

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">