Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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:
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 (java) [Seleccionar]

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)});
}
}
}


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.
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
private static Manzana manzana;

Si la variable es solo para un objeto no usas el modificador static
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 estopublic 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.