Java - Insertar imagen en JLabel Eclipse

 
Vista:
sin imagen de perfil
Val: 87
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Insertar imagen en JLabel Eclipse

Publicado por Tomas (76 intervenciones) el 19/01/2016 11:48:22
Estoy trabajando con componentes personalizados (que se pueden modificar des del windowsBuilder), algo como crear una plantilla donde el programador solo tiene que modificar los elementos disponibles.
Tengo un jpanel con varios setters (por ahora solo un jlabel con la imagen). Este jpanel lo agrego a un jdialog y en el windowsBuilder me aparecen (en las propiedades) los setters que puse.

El problema es que si le agrego la imagen directamente al jpanel se vé. Si se la agrego al jdialog (tramite las propiedades que creé) no se ve, me da un nullpointer.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class JPANEL extends JPanel {
 
		private String rutaIcona;
 
	public JPANEL() {
 
		JLabel lblNewLabel = new JLabel();
		lblNewLabel.setIcon(new ImageIcon(JPANEL.class.getResource(getRutaIcona())));
		add(lblNewLabel);
 
		JPanel panel = new JPanel();
 
		panel.setLayout(new GridLayout(2, 1, 0, -20));
 
	}
 
	public String getRutaIcona() {
		return rutaIcona;
	}
 
	public void setRutaIcona(String string) {
		this.rutaIcona = string;
	}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public classJDIALOG extends JDialog {
 
	private JPANEL contentPanel = new JPANEL();
 
 
	public static void main(String[] args) {
		try {
	JDIALOG dialog = new JDIALOG();
			dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
 
	public JDIALOG() {
		setBounds(100, 100, 450, 300);
		getContentPane().setLayout(new BorderLayout());
 
///// AQUI llamo a la funcion del JPANEL de agregar la imagen//////
		contentPanel.setRutaIcona("img/imagen.png");
		contentPanel.setLayout(new FlowLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
		{
			JPanel buttonPane = new JPanel();
			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
			getContentPane().add(buttonPane, BorderLayout.SOUTH);
			{
				JButton okButton = new JButton("OK");
				okButton.setActionCommand("OK");
				buttonPane.add(okButton);
				getRootPane().setDefaultButton(okButton);
			}
			{
				JButton cancelButton = new JButton("Cancel");
				cancelButton.setActionCommand("Cancel");
				buttonPane.add(cancelButton);
			}
		}
	}
 
 
 
}
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

Insertar imagen en JLabel Eclipse

Publicado por Tom (1831 intervenciones) el 19/01/2016 12:33:16
Ummm yo no veo que agregues la imagen por ningún sitio en tu jdialog, solamente pones el path, pero nada más ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 87
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Insertar imagen en JLabel Eclipse

Publicado por Tomas (76 intervenciones) el 19/01/2016 13:14:09
pongo la ruta relativa a la imagen en el JDIALOG "contentPane.setRutaIcona(path)" , ese metodo pertenece al JPANEL. Debería guardar ese path en la variable rutaIcona de JPANEL.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 87
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Insertar imagen en JLabel Eclipse

Publicado por Tomas (76 intervenciones) el 22/01/2016 15:35:13
Solucionado, los métodos para cambiar algo tienen que ir en los setters que se ejecutarán cada vez que se los llame. No en el constructor que se ejecutara una sola vez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar