Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di rex64
    Registrato dal
    Dec 2002
    Messaggi
    236

    [JAVA] dubbio su applet

    Salve a tutti!
    Guardate un'attimo:


    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;

    public class calcgrafica extends Applet implements ActionListener{



    public void init() {

    TextField testo = new TextField(15);
    add(testo);


    Button send = new Button("Prova");
    send.addActionListener(this);
    add(send);


    }

    public void actionPerformed (ActionEvent evt){

    System.out.println(smtp.getText());

    }


    }

    Perchè mi dice che la variabile smtp non esiste?
    l'actionPerformed non la vede! Dovrei metterla pubblica?
    E se all'inizio metto public TextField testo mi l'applet parte ma di dà errore quando clicco sul bottone.

    Come bisogna fare?

  2. #2
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Scusa non capisco...quale è la variabile smtp???
    Nel codice non è definita per nulla...come fai a chiamare un metodo di una variabile che non hai mai definito?
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  3. #3
    Utente di HTML.it L'avatar di rex64
    Registrato dal
    Dec 2002
    Messaggi
    236
    Ops scusami!
    Ho dimenticato di cambiarla era la variabile testo quando ho postato il programma:

    il programma giusto era:

    mport java.awt.*;
    import java.awt.event.*;
    import java.applet.*;

    public class calcgrafica extends Applet implements ActionListener{



    public void init() {

    TextField testo = new TextField(15);
    add(testo);


    Button send = new Button("Prova");
    send.addActionListener(this);
    add(send);


    }

    public void actionPerformed (ActionEvent evt){

    System.out.println(testo.getText());

    }


    }

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E' un problema che si chiama VISIBILITA' delle variabili: tu dichiari e istanzi una variabile all'interno di un blocco, quindi all'esterno non è visibile. Per rendere visibile una variabile è necessario DICHIARARLA all'esterno di tutti i blocchi che la devono vedere.

    In questo caso, per far sì che il metodo actionPerformed() veda la variabile, è necessario che tu la DICHIARI al di fuori dei metodi (poi la puoi istanziare dentro a uno qualsiasi di essi...).
    codice:
    import java.awt.*; 
    import java.awt.event.*; 
    import java.applet.*; 
    
    public class calcgrafica extends Applet implements ActionListener{ 
    
    TextField testo;
    
       public void init() { 
          testo = new TextField(15); 
          add(testo); 
    
          Button send = new Button("Prova"); 
          send.addActionListener(this); 
          add(send); 
       } 
    
       public void actionPerformed (ActionEvent evt){ 
          System.out.println(testo.getText()); 
       } 
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di rex64
    Registrato dal
    Dec 2002
    Messaggi
    236
    mi dà lo stesso problema che mi dava quando la dichiaravo public:

    apple.awt.EventQueueExceptionHandler Caught Throwable :
    java.lang.NullPointerException
    at calcgrafica.actionPerformed(calcgrafica.java:37)
    at java.awt.Button.processActionEvent(Button.java:381 )
    at java.awt.Button.processEvent(Button.java:350)
    at java.awt.Component.dispatchEventImpl(Component.jav a:3598)
    at java.awt.Component.dispatchEvent(Component.java:34 39)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java: 450)
    at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:230)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:177)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:169)
    at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:99)


    Perchè?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non era un problema di public/private/protected (non è un problema di modificatore di tipo). Nel tuo codice l'avevi dichiarato ALL'INTERNO DI init(), mentre dovevi dichiararlo all'esterno. Posta il codice, dopo la modifica.



    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it L'avatar di rex64
    Registrato dal
    Dec 2002
    Messaggi
    236
    Ti ringrazio!
    Con il tuo aiuto ho risolto!

    Grazie ancora per aver portato pazienza con un newbie come me!

    Grazie ancora e alla prossima!

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ma non c'è di che...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.