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.
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


0