Imagen en tabla y en java class

Iniciado por Damian616, 15 Junio 2018, 04:17 AM

0 Miembros y 1 Visitante están viendo este tema.

Damian616

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.

egyware

Te agradecería si el código lo pones dentro del tag de código para su mejor compresión.


egyware

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

Damian616

#4
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

egyware

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?

Damian616

#6
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

egyware

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

Damian616

lo solucione usando estopublic static Icon Acero = new ImageIcon("src/Ima/Acero.gif"); la diferencia fue declararlo y quitar getClass().getResource

egyware

Ahh no me di cuenta de eso.

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