Java - por que? sale este error (Aprendiendo java)

   
Vista:

por que? sale este error (Aprendiendo java)

Publicado por ejvq (3 intervenciones) el 17/05/2010 15:39:58
non-static variable xxxx cannot be referenced from a static context

non-static variable xxxx cannot be referenced from a static variable


quisiera saber por que aveces me sale este error al escribir un programa en java si en programas anteriores hago la linea de codigo de igual manera un ejemplo es aqui en este sencillo condigo que estoy practicando pero cuando intento capturar el valor de una variable con el JoptionPane.showInputDialog como lo hago siempre me da un error espero que me ayuden con este tipo de error ya que me he dado cuenta de que es muy comun

codigo
=========================================================================

package paquete;

import javax.swing.*;

public class Main {


float pesotierra;
float pesolunar;
String captura;


public static void main(String[] args) {

JOptionPane.showMessageDialog(null,"Este Programa Calcula Tu Peso en la Luna");
captura = JOptionPane.showInputDialog("ingrese su peso"); //aqui me sale el error


}

}

==========================================================================

como se puede notar solamente voy comenzando ese programa para practicar ni siquiera realizo el calculo por que como se puede ver cuando intento capturar el valor del peso con el JoptionPane me da el error antes mensionado para despues convertir la variable string a float


pd: lo poco que he aprendido de java es por medio de video tutorial y un poco de un libro de java espero su ayuda gracias
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

RE:por que? sale este error (Aprendiendo java)

Publicado por YamilBracho (2072 intervenciones) el 17/05/2010 21:08:33
La variable "'captura'" es una variable de la instancia y no de la clase. Para arreglar tu codigo haces algo asi:

public static void main(String[] args) {
Main m = new Main();

JOptionPane.showMessageDialog(null,"Este Programa Calcula Tu Peso en la Luna");
m.captura = JOptionPane.showInputDialog("ingrese su peso"); //aqui me sale el error
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

RE:por que? sale este error (Aprendiendo java)

Publicado por LeO (33 intervenciones) el 18/05/2010 08:08:10
Seria mas lindo hacer..

public static void main (String[]args){

JOptionPane.showMessageDialog(null,"Este Programa Calcula Tu Peso en la Luna");
String captura=JOptionPane.showInputDialog("ingrese su peso");

Un abrazo! suerte
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

RE:por que? sale este error (Aprendiendo java)

Publicado por Anonimouse (12 intervenciones) el 20/05/2010 20:28:29
bueno las dos respuestas que le dan son validas, pero porque es el error, es porque con la teoria de objetos si declaras un metodo de tipo static este solo puede acceder a variables u otros metodos declarados como static.

otra solucion tambien podria ser de clarar la variable captura como statica:
static String captura;
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

RE:por que? sale este error (Aprendiendo java)

Publicado por Folger (1 intervención) el 03/11/2012 01:51:54
Hola, a mi me pasa algo parecido, por favor agradeceria el apoyo.

Les copio el código.
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
package EjemploCuentaBancaria;
import java.io.Console;
public class Main {
 
    Console c = System.console();
 
    //En ambas cuentas tenemos que poder hacer un deposito, 
    public static void main(String[] args) {
 
        int interesAnual = 8;
        int depositoInicial = 100;
        int tiempo = 10;
        // Se crean los objetos de ambas cuentas
        CuentaCorriente cc = new CuentaCorriente(interesAnual);
        CuentaAhorro ca = new CuentaAhorro(interesAnual);
 
        for (int i = 0; i <= tiempo; i++){
            cc.depositar(100);
            ca.depositar(100);
 
            cc.finDeMes();
            ca.finDeMes();
 
            //Mostramos:
            String s= " ";
            s += "Mes" + i + ":     ";
            s += cc.getInfo() + "   ";
            s += ca.getInfo();
            c.println(s);
        }
        c.println(cc.getNumeroCuenta());
        c.println(ca.getNumeroCuenta());
    }
}


Error: non-static variable c cannot be referenced from a static context
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