Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    Passare argomenti alla nuova classe

    Allora ho una classe arItem.java, tale classe la chiamo dalla classe paziente.java in questo modo:
    codice:
    private void arSinActionPerformed(java.awt.event.ActionEvent evt) {                                      
            arItem arItem;
            arItem = new arItem();
            arItem.setVisible(true);
        }
    questo mi apre la nuova interfaccia grafica scritta in arItems, come faccio a passare alla nuova classe una stringa???

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    hai diverse possibilità
    -fai un costruttore che accetti una stringa come parametro

    -un metodo per accedere ad un qualche campo String nella tua classe da richiamare con qualcosa del genere:
    codice:
    arItem.setParam("Tua Stringa Argomento");
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Ehm, dal costruttore?!!

    codice:
    private void arSinActionPerformed(java.awt.event.ActionEvent evt) {                                      
            arItem arItem;
            arItem = new arItem(String tuaStringa);
            arItem.setVisible(true);
    }
    codice:
    public arItem(String tuaStringa) { 
       //CODICE DEL COSTRUTTORE
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    ho cercato di seguire il primo metodo e nella classe Paziente.java ho aggiunto alle 3 righe precedenti anche quella suggerita da andrea, cioè:
    codice:
    //...
    arItem.setParam("Tua Stringa Argomento");
    //...
    poi nella classe arItem.java ho creato il metodo setParam:
    codice:
        public String setParam(String p){
            return p;
        }
    se chiedo di stampare - System.out.println(p) - la p all'interno del metodo setParam funziona, se invece la stampo da un metodo diverso da setParam nn la trova, come posso modificare il metodo o l'invocazione di p in modo da avercela sempre visibile?

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora ci sono un po' di cose confusionarie

    Normalmente un metodo setter non ritorna niente, ma questo non è grave né fondamentale.

    Se vuoi rendere un dato visibile all'interno di tutta la classe lo devi mettere nelle dichiarazioni dei campi a livello di classe:
    codice:
    public class arItem {
      private String tuoParametro;
      ...
    }
    Se vuoi che tuoParametro sia comodamente inizializzato ad un qualche valore (e quindi sia disponibile da subito con un valore) usa il metodo con il costruttore con parametro

    codice:
      private String tuoParametro;
    
      public arItem (String tuoParametro) {
        ...
        this.tuoParametro = tuoParametro;  
        ...
      }
      ...
    }
    altrimenti con i setter/getter (che comunque dovrebbero esserci, imho)

    codice:
      public void setParametro (String tuoParametro) {
        this.tuoParametro = tuoParametro;
      }
      
      public String getParametro() {
        return this.tuoParametro;
      }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    ma con la 1° soluzione:
    codice:
    private String tuoParametro;
    
      public arItem (String tuoParametro) {
        ...
        this.tuoParametro = tuoParametro;  
        ...
      }
      ...
    }
    mi chiede ovviamente di modificare il main
    codice:
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new arItem().setVisible(true); //<-- DA MODIFICARE
                }
            });
        }
    ma come??? se ci metto:
    new arItem(String tuoParametro).setVisible(true);
    mi dà un errore dicendo che aspetta una parentesi tonda chiusa.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non avere troppa fretta di compattare il codice in maniera inutile
    codice:
    public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    arItem ai = new arItem("parametro");
                    ai.setVisible(true); //<-- DA MODIFICARE
                }
            });
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    quest'ultimo codice che ti ho incollato era il main di arItem.java generato da netbeans, gli dovrei passare una variabile non una stringa.
    Ma la var non la posso passare.

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    la passi al costruttore, non al main.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da Metallica
    ma come??? se ci metto:
    new arItem(String tuoParametro).setVisible(true);
    mi dà un errore dicendo che aspetta una parentesi tonda chiusa.
    Forse non è stato notato da Andrea: qui stai scrivendo una corbelleria!!
    Devi passare un argomento, non una dichiarazione!
    codice:
    new arItem("qualcosa");
    
    e non
    
    new arItem(String qualcosa);  // <-- Assolutamente no!!
    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.