Article View: es.comp.lenguajes.java
Article #460Re: Duda b�sica de principiante
From: ggg
Date: Tue, 01 May 2007 18:15
Date: Tue, 01 May 2007 18:15
135 lines
6117 bytes
6117 bytes
Hola.
Me acabo de dar cuenta de un detalle que considero importante: en la parte
principal que adjuntaba en mi mensaje elimin� dos l�neas comentadas situadas
antes de la l�nea 30 (la primera a la que hace referencia el error). Por
tanto (y lo he comprobado volviendo a intentar la ejecuci�n) en realidad el
error lo provoca la l�nea 28 ( miContador.si();).
Por otra parte he le�do algo m�s y me ha parecido entender que la m�quina
virtual Java se arranca cuando ejecuto el java.exe, aunque no s� si habr�
que indicar de alguna manera la carpeta de trabajo, donde est�
Contador.class (qu� es la misma donde est� Sondeo1.class)
Saludos,
GGG
"ggg" <ggg@mixmail.com> escribi� en el mensaje
news:f16k1v$cc8$1@nsnmpen2-gest.nuria.telefonica-data.net...
> Hola a todos.
>
> Es la primera vez que participo en el foro. Soy novato absoluto en temas
de
> JAVA pero, de repente, me apeteci� meterme en este mundillo (tengo alguna
> experiencia previa en programaci�n en otros lenguajes, siempre en plan
> autodidacta y de aficionado: clipper, c, ensamblador, basic).
> Empec� por descargarme de la web de Sun el ejecutable
> jdk-6u1-windows-i586-p.exe que me instal� el JDK y el JRE 1.6.0_01. De
> entrada me sorprendi� que no hubiera nada parecido a un "entorno de
> desarrollo"; me refiero a un programa Windows que incorporara su editor
> Java, compilador, entorno de ejecuci�n, etc. Si embargo, al seguir los
> lentos pasitos de un cursillo de Java que me facilitaron me encontr� con
que
> pod�a empezar a andar usando como compilador el javac.exe que encontr� en
la
> carpeta BIN del JDK y como int�rprete el java.exe de la misma carpeta todo
> ello desde una ventana de CMD (trabajo con Windows2000). As� consegu�
> ejecutar el famoso "Hola Mundo", un programita transcrito de C para el
> c�lculo del NIF y alguna otra cosilla algo m�s compleja, siguiendo el
gui�n
> del cursillo.
> Ahora me encuentro en un punto en el que, desde un programa principal,
> intento usar una clase compilada de forma independiente. Me sale un chorro
> de errores que empieza por:
>
> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
> at Sondeo1.handleEvent(Sondeo1.java:30)
> at java.awt.Window.postEvent(Window.java:2438)
> at java.awt.Component.postEvent(Component.java:4707)
> at java.awt.Component.dispatchEventImpl(Component.java:4426)
> at java.awt.Component.dispatchEvent(Component.java:4240)
> at
>
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848
> )
> at
>
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocu
> sManager.java:869)
> at
>
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManag
> er.java:501)
> at java.awt.Component.dispatchEventImpl(Component.java:4282)
>
> Intuyo que el problema tiene que ver con la famosa "m�quina virtual Java",
> que creo que no est� arrancada, no s� en que consiste ni como se arranca y
> supongo que es la responsable de realizar el enlace din�mico entre las dos
> clases.
>
> Los c�digos fuente son:
>
> Clase principal: Sondeo1.java
> -------------------------------
>
> import java.awt.*;
>
> public class Sondeo1 extends Frame{
> Button si;
> Button no;
> Label comentario;
> Label mostrarResultado;
> Contador miContador;
> public Sondeo1(){
> comentario = new Label("�Te gusta este ejemplo?", Label.CENTER);
> add ("North", comentario);
> si = new Button("SI");
> add ("East", si);
> no = new Button("NO");
> add ("West", no);
> mostrarResultado = new Label("No puedo contestar", Label.CENTER);
> add ("South", mostrarResultado);
> }
> public static void main (String args[]){
> Sondeo1 miSondeo = new Sondeo1();
> miSondeo.setTitle("Sondeo");
> miSondeo.pack();
> miSondeo.show();
> }
> public boolean handleEvent(Event evt){
> if (evt.id == Event.WINDOW_DESTROY){System.exit(0);}
> else if (evt.target == si){
> miContador.si();
> mostrarResultado.setText(miContador.MostrarContador());
> }
> else if (evt.target == no){
> miContador.no();
> mostrarResultado.setText(miContador.MostrarContador());
> }
> return super.handleEvent(evt);
> }
> }
>
> Clase llamada: Contador.java
> ------------------------------
>
> public class Contador extends Object{
> int numSi;
> int numNo;
> public Contador(){numSi = 0; numNo = 0;}
> void si(){numSi++;}
> void no(){numNo++;}
> String MostrarContador(){
> StringBuffer cadena = new StringBuffer();
> cadena.append(numSi*100/(numSi+numNo));
> cadena.append("% de gente que le gusta");
> return cadena.toString();
> }
> }
>
>
> Si alguien puede orientarme le estar� muy agradecido.
>
> Saludos,
>
> GGG
>
>
Technical Details
Message-ID:
<f1802c$868$1@nsnmpen2-gest.nuria.telefonica-data.net>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen2-lo.nuria.telefonica-data.net!not-for-mailReferences:
<f16k1v$cc8$1@nsnmpen2-gest.nuria.telefonica-data.net>Show Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,96e3bd286451c320 X-Google-Attributes: gid1116f3,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen2-lo.nuria.telefonica-data.net!not-for-mail From: "ggg" <ggg@mixmail.com> Newsgroups: es.comp.lenguajes.java Subject: Re: Duda b�sica de principiante Date: Tue, 1 May 2007 20:15:38 +0200 Organization: Telefonica Data Espagna Lines: 137 Message-ID: <f1802c$868$1@nsnmpen2-gest.nuria.telefonica-data.net> References: <f16k1v$cc8$1@nsnmpen2-gest.nuria.telefonica-data.net> NNTP-Posting-Host: 27.red-80-38-213.staticip.rima-tde.net X-Trace: nsnmpen2-gest.nuria.telefonica-data.net 1178043276 8392 80.38.213.27 (1 May 2007 18:14:36 GMT) X-Complaints-To: usenet@nsnmpen2-gest.nuria.telefonica-data.net NNTP-Posting-Date: Tue, 1 May 2007 18:14:36 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000