2010-05-31 28 views
10

Quiero mostrar una imagen en mi aplicación Java. Encontré un código para descargar la imagen del servidor web y mostrarla en el jframe.Cómo mostrar una imagen en una aplicación Java

Quiero usar una etiqueta para mostrar la imagen u otra cosa. No debería ser JFrame.

Aquí está mi código:

Image image = null; 
try { 
    URL url = new URL(
     "http://www.personal.psu.edu/acr117/blogs/audrey/images/image-2.jpg"); 
    image = ImageIO.read(url); 
} catch (IOException e) { 
} 

// Use a label to display the image 
JFrame frame = new JFrame(); 

JLabel lblimage = new JLabel(new ImageIcon(image)); 
frame.getContentPane().add(lblimage, BorderLayout.CENTER); 
frame.setSize(300, 400); 
frame.setVisible(true); 

Alguien me puede ayudar?

+1

¿Trabaja su código o no? ¿Lo probaste? Si no funciona, entonces, ¿qué sucede? ¿Recibes un mensaje de error o no se ve como esperabas? Cuantos más detalles proporciones, mejores personas podrán ayudarte. – Jesper

+0

El código hace exactamente lo que describes. La imagen se muestra en la etiqueta lblimage. Puedes poner la etiqueta en un JPane y funcionará. ¿Qué crees que no está funcionando? – openCage

+0

no funciona bien. pero se muestra en el marco. pero quiero que esta imagen se muestre en una etiqueta o algo. entonces puedo ajustar el tamaño y todo. Quiero poner esta imagen en un área específica de mi aplicación. por favor, ayúdenme – Nubkadiya

Respuesta

5

Usando el código que proporcionó, ya tiene la imagen en un JLabel llamado lblimage. Ahora puede añadir que a un panel o cualquier otro objeto contenedor, así:

JPanel mainPanel = new JPanel(new BorderLayout()); 
mainPanel.add(lblimage); 
// add more components here 
frame.add(mainPanel); 
frame.setVisible(true); 

se puede tratar a esa etiqueta (lblimage) al igual que lo haría con cualquier componente normal.

+0

intenté arrastrando dejando caer un panel y haciendo que este código se ajustara a eso. pero no funciona y quiero agregar más y más elementos (botones y etiquetas) a mi GUI. ¿Puedes ayudarme? – Nubkadiya

2

y quiero agregar más y más elementos (botones y etiquetas) a mi GUI. puede por favor ayúdenme

Su pregunta no tiene nada que ver con las etiquetas y las imágenes. Debe comprender cómo usar los Administradores de diseño para organizar los componentes que agrega a un marco.

Así que comienza leyendo el tutorial de Swing en Layout Managers. Hay muchos ejemplos con los que puedes descargar y jugar. También puede anidar diferentes administradores de diseño en diferentes paneles.

2

Su código ya hace lo que necesita (para mostrarla en que no sea un JFrame - que es un JLabel -)

Por lo que dice en sus comentarios, para tratar de arrastrar y soltar y añadir más componentes que pienso lo que necesita es usar un constructor de interfaz gráfica de usuario para conseguir lo que quiere (que no sólo se muestre la imagen, sino añadir otros componentes)

yo recomendaría usted yo uso IntelliJ IDEA 's GUI Builder

con el fin de tener una una descripción completa de cómo funciona Swing y qué puede hacer con él, también puede ver: The swing tutorial

3

me gustaría añadir dos notas a las otras respuestas útiles:

1) No trague excepciones; escribir en un registro o al menos imprimir un seguimiento de la pila.

catch (IOException e) { e.printStackTrace(); } 

2) En lugar de escribir frame.setSize(300, 400), utilice pack(), que "hace que este Window a ser de un tamaño para ajustarse al tamaño y la disposición de sus subcomponentes preferido." De esta forma, se usarán las dimensiones originales de la imagen. Esta es también la base de la sugerencia de @camickr para leer sobre los administradores de diseño.

4

Usted podría intentar hacer esto en su lugar:

import javax.swing.ImageIcon; 
... 
JLabel image = new JLabel(new ImageIcon("imageName.png")); 
... 
frame.add(image); 

Me parece que es mucho más fácil de hacer: D

EDIT: Al leer la pregunta por la 4ª vez, me di cuenta de que esto es exactamente lo que hiciste en la pregunta. Ahora, estoy teniendo problemas para averiguar qué es exactamente lo que estás pidiendo.

+0

¿Cuál es mi problema? Ya he agregado una imagen a mi etiqueta. pero no se muestra. la etiqueta es de arrastrar y soltar. entonces quiero que cuando mi aplicación se ejecute, la etiqueta muestre la imagen. y la otra cosa es que no debería tomar toda la GUI. usar jframe lo que hace es tomar todo el marco así que ni siquiera puedo agregar ningún otro botón o etiqueta – Nubkadiya

+0

¿Qué quieres decir con que no debe tomar toda la GUI? Y arrastrando y soltando, ¿quiere decir que está usando otro programa para hacer la GUI? Si la imagen no se muestra, lo que probablemente tendrá que hacer es colocar el JLabel que contiene la imagen en un JPanel y luego decirle al JPanel que ejecute updateUI(); (Creo. Todavía no estoy seguro de cuál es tu problema.) – exodrifter

+0

tengo más botones y etiquetas. todos ellos no son creados por el código. Arrastré y los coloco en el formulario. – Nubkadiya

2

Prueba esto:

JLabel lblNewLabel_1 = new JLabel(""); 
lblNewLabel_1.setIcon(new ImageIcon(MainMenu.class.getResource("/Images/Bugs.png"))); 
Cuestiones relacionadas