Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Damian616 en 15 Junio 2018, 04:17 am



Título: Imagen en tabla y en java class
Publicado por: Damian616 en 15 Junio 2018, 04:17 am
Agradecería enormemente su ayuda.Trabajando en el código del jFrame escribí lo siguiente:
Código:
public class Geneuno extends javax.swing.JFrame {
    DefaultTableModel Tabla1 = new DefaultTableModel();
    Icon Acero = new ImageIcon(getClass().getResource("../Ima/Acero.gif"));
private void CbSelMetActionPerformed(java.awt.event.ActionEvent evt) {
    if (CbSelMet.getSelectedItem().equals("Metal")){
    Tabla1.addRow(new Object []{"",new JLabel(Acero),"",new JLabel(Acero)});
}
}
y todo funciona bien pero si lo quiero poner en una java class me dice que Acero no es static, mi pregunta es como puedo mudarlo a una java class, por favor ayuda.


Título: Re: Imagen en tabla y en java class
Publicado por: egyware en 15 Junio 2018, 15:31 pm
Te agradecería si el código lo pones dentro del tag de código para su mejor compresión.


Título: Re: Imagen en tabla y en java class
Publicado por: Damian616 en 15 Junio 2018, 16:40 pm
asi?


Título: Re: Imagen en tabla y en java class
Publicado por: egyware en 15 Junio 2018, 17:04 pm
Así =P
Código
  1. public class Geneuno extends javax.swing.JFrame
  2. {
  3.    DefaultTableModel Tabla1 = new DefaultTableModel();
  4.    Icon Acero = new ImageIcon(getClass().getResource("../Ima/Acero.gif"));
  5. private void CbSelMetActionPerformed(java.awt.event.ActionEvent evt)
  6. {
  7. if (CbSelMet.getSelectedItem().equals("Metal"))
  8. {
  9. Tabla1.addRow(new Object []{"",new JLabel(Acero),"",new JLabel(Acero)});
  10. }
  11. }
  12. }
  13.  

Yo miro este código, y no noto ningún drama. Incluso lo probé en netbeans y nada.
Si puedes pegar el código del error y un mini ejemplo del código donde lo quieres usar sería útil para ayudarte.

PS: Ignore el hecho que no está definida la variable CbSelMet, supongo que la tienes definida más abajo en tu clase.


Título: Re: Imagen en tabla y en java class
Publicado por: Damian616 en 15 Junio 2018, 17:17 pm
en el formulario principal me funciona correctamente, lo que quiero es poner este código en una java class e importarlo de ahí al formulario principal pero cuando lo hago me dice que la imagen no es estática. No se si me doy a entender.
Código:
non-static variable Acero cannot be referenced from a static context


Título: Re: Imagen en tabla y en java class
Publicado por: egyware en 15 Junio 2018, 17:36 pm
Por lo que creo estás llamando una variable no estatica (o variable de objeto), desde una función estatica (función de clase).

Conoces la diferencia entre una función estatica y no estatica?


Título: Re: Imagen en tabla y en java class
Publicado por: Damian616 en 15 Junio 2018, 17:50 pm
si lo se, pero mi problema es q no se como convertir la variable acero en static, creo, soy estudiante y estoy ingresando en este mundo


Título: Re: Imagen en tabla y en java class
Publicado por: egyware en 15 Junio 2018, 18:27 pm
Ahí entra el diseño de la clase y del objeto que vas a usar.

Si la variable quieres que sea única para toda la clase usas
Código:
private static Manzana manzana;

Si la variable es solo para un objeto no usas el modificador static
Código:
private Manzana manzana;

Tienes que ver bien si te acomoda usar static o no, depende únicamente de tu diseño. Si diseñas mal la clase te traerá problemas a futuro. Pero ya con el tiempo te darás cuenta cuando usar o no static.

Saludos


Título: Re: Imagen en tabla y en java class
Publicado por: Damian616 en 15 Junio 2018, 19:19 pm
lo solucione usando esto
Código:
public static Icon Acero = new ImageIcon("src/Ima/Acero.gif");
la diferencia fue declararlo y quitar getClass().getResource


Título: Re: Imagen en tabla y en java class
Publicado por: egyware en 15 Junio 2018, 19:24 pm
Ahh no me di cuenta de eso.

Pero para que sepas getClass no es estatico, si no es una función de objeto.