Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Mai89 en 8 Abril 2012, 23:23 pm



Título: Insertar imagnes Image e ImageIcon
Publicado por: Mai89 en 8 Abril 2012, 23:23 pm
Buenas!! Pues tengo un problemilla a la hora de insertar una imagen en una ventana, he estado indagando un poco por algunas páginas web y por el mismo foro. Leyendo he visto que estas dos clases (Image e ImageIcon) serian las que me ayudarían a introducir la imagen en la ventana que ya tengo diseñada, y a la que única mente le falta meterle la imagen para tener el diseño completo. La cosa es, que tengo la imagen ya metida en el jar del proyecto. y por lo que he estado viendo por ahí, podría meterla en un JButton o un JLabel para hacerla aparecer en mi ventana. La verdad es que he probado código, pero como no tengo claro el uso de estas clases y su combinación con los otros componentes  no me ha servido de nada. Así que pido desde aquí una ayudita.
Por lo que he visto hay quien crea una clase expecifica para insertar imagenes, pero no sé, yo estoy con la manía de que se puede hacer de forma más simple sin necesidad de crear más clases. en cualquier caso os dejo el código de lo que tengo hecho:

Código:
import java.awt.image.ImageProducer;
import javax.swing.*; //Importa la clases necesarias para poner los componentes
import java.awt.*; //Importa las clases necesarias para controlar los paneles y las acciones de los componentes.
import javax.swing.ImageIcon;


public class VentanaPrincipal {
   
    private static JFrame ventana;
    private static JPanel pa_norte, pa_sur;

    private static JLabel label_tiprestamo, label_capital, label_tiempo, label_interes;
    private static JComboBox cb_tiprestamo;
    private static JTextField tf_capital, tf_tiempo, tf_interes;

    private static JButton b_cuadro, b_yjava;
    private static ImageIcon ii_yjava;
    private static Image imagen;
   

    //CONSTRUCTOR
    public VentanaPrincipal() {
        crearVentana();
    }

   
    public void crearVentana(){

     
        ventana= new JFrame("EuroPrest");
        ventana.setSize(500, 200);
        ventana.setVisible(true);
        ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ventana.setLayout(new BorderLayout());

        //Contenedor NORTE y sus Componentes
        pa_norte= new JPanel();
        pa_norte.setLayout(new GridLayout(4,2));
        ventana.add(pa_norte, BorderLayout.NORTH);
       
        label_tiprestamo= new JLabel("Tipo de Prestamo:");
        pa_norte.add(label_tiprestamo);
        cb_tiprestamo= new JComboBox(new String[]{"---Seleccione Prestamo---", "Francés", "Amortización Constante"});
        pa_norte.add(cb_tiprestamo);

        label_capital= new JLabel("Capital Inicial:");
        pa_norte.add(label_capital);
        tf_capital = new JTextField();
        pa_norte.add(tf_capital);

        label_tiempo= new JLabel("Años de la Operación:");
        pa_norte.add(label_tiempo);
        tf_tiempo=new JTextField();
        pa_norte.add(tf_tiempo);

        label_interes=new JLabel("Tipo de Interes:");
        pa_norte.add(label_interes);
        tf_interes=new JTextField();
        pa_norte.add(tf_interes);

        //Contenedor SUR y sus componentes
        pa_sur=new JPanel();
        pa_sur.setLayout(new GridLayout(1,2));
        ventana.add(pa_sur);

        b_cuadro=new JButton("Generar Cuadro");
        b_cuadro.setSize(50, 10);
        pa_sur.add(b_cuadro);
     
        imagen= new Image("logoyJava.png") {};
        b_yjava=new JButton();
        b_yjava.createImage((ImageProducer) imagen);
        pa_sur.add(b_yjava);

       

    }


     public static void main(String[] args) {
        VentanaPrincipal ventPrincipal = new VentanaPrincipal();
    }

}

Los componentes de la ventana están organizados en dos paneles, en el panel sur es donde yo quiero insertar la imagen (a la izquierda), pero de momento no he conseguido nada más que hacer aparecer el botón pero sin la imagen, que se encuentra dentro del mismo proyecto junto con las clases.

Cualquier ayuda me vendrá bien. Gracias de antemano.


Título: Re: Insertar imagnes Image e ImageIcon
Publicado por: goll9d en 9 Abril 2012, 03:51 am
Puedes poner tu imagen en un JLabel

Código
  1.  
  2. b_yjava.setIcon(new ImageIcon(getClass().getResource("y la direccion en la que esta la imagen")));
  3. pa_sur.add(b_yjava);
  4.  
  5.  
Pero como ya has dicho la imagen esta en el proyecto, entonces solo escribe el nombre.extensión
Espero que te sea de ayuda  ;)


Título: Re: Insertar imagnes Image e ImageIcon
Publicado por: Mai89 en 9 Abril 2012, 11:06 am
Muchas Goll9d!! ya lo he conseguido! Lo he intentado primero con un un botón y luego lo he metido en un label.

Con JButton
Código:
        imagen= new ImageIcon("logoyJava.png") ;
        b_yjava=new JButton(imagen);
        pa_sur.add(b_yjava);

Con JLabel
Código:
 imagen= new ImageIcon("logoyJava.png") ;
        label_yjava=new JLabel(imagen);
        pa_sur.add(label_yjava);

La verdad es que se queda más curioso si se inserta en un JLabel, ya que no te salen los bordes del botón ni nada. Muchas gracias otra vez!!


Título: Re: Insertar imagnes Image e ImageIcon
Publicado por: bels_mike en 15 Abril 2012, 18:14 pm
hombre también puedes quitar los bordes del botón y demás... y se te queda prácticamente lo mismo en cuanto gráficamente se refiere


Título: Re: Insertar imagnes Image e ImageIcon
Publicado por: Proteus1989 en 16 Abril 2012, 00:43 am
Para imágenes tienes un componente llamado ImageArea


Título: Re: Insertar imagnes Image e ImageIcon
Publicado por: Mai89 en 4 Junio 2012, 14:26 pm
Al final conseguí ponerlo en jLabel! Me resultó más fácil. Pero Gracias por el consejo.