Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [java] chiarezza su un codice

    vorrei chiedere un po di spiegazioni su un codice che sto studiando,il mio libro nn chiarisce i miei dubbi.

    voglio creare una finestra con una semplice scritta all'interno

    nl programma ho 3 classi una finestra,una scritta a una inizializzatore

    nn mi è chiara questa parte di codice

    codice:
    scritta panel = new scritta();
     Container contentPane = getContentPane();
     contentPane.add(panel);
    che si trova nella classe finestra

    ed interamente la classe scritta cioè

    codice:
    public class scritta extends JPanel //qui ok crea una classe creitta dalla superclasse JPanel
    {
     public void paintComponent(Graphics h) //da qui nn capisco piu,soprattutto la parte (Graphics //h)
     {
        super.paintComponent(h);
        h.drawString("prova prova",75,100);
    }
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    codice:
    01 scritta panel = new scritta();
    02  Container contentPane = getContentPane();
    03  contentPane.add(panel);
    Con questo codice fai le seguenti operazioni:
    Riga 01: Dichiari e crei un oggetto di tipo "scritta" (se il libro la chiama con la S minuscola, allora va contro la convenzione Java sui nomi delle classi, ma è un altro discorso), che altro non è che un pannello (JPanel) che disegna una scritta.

    Riga 02: Ottieni il riferimento al "contentPane", che sarebbe il contenitore principale di ciascuna finestra.

    Riga 03: Aggiungi il pannello appena creato al "contentPane" (ovvero, lo aggiungi alla finestra)

    La classe "scritta" è solo un'estensione di un generico pannello (JPanel) che disegna una stringa su se stesso.


    Cosa non ti è chiaro?


    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

  3. #3
    la classe scritta,la ho chiamata io così,e da ora in poi nn lo farò più.

    quindi da quanto ho capito Container contentPane = getContentPane(); richiama il contentPane,che sarebbe la parte della finestra dove posso aggiungere il campo di testo e con contentPane.add(panel); non faccio altro che aggiungere il testo.

    per l'altro codice
    codice:
    1:public class Scritta extends JPanel 
    2:{
    3:public void paintComponent(Graphics h) 
    4:{
    5:  super.paintComponent(h);
    6:   h.drawString("prova prova",75,100);}
    7:}
    1:creo la classe Scritta e qui ci siamo
    3:cos'è un metodo??? e quel graphic h cos'è???
    per le altre righe,mi sa che sono collegate a questa

  4. #4
    ti conviene acquistare un manuale java base e studiarlo, fai prima.
    Visto che sei a -0 con java.
    ciao

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Beh, se non sai ancora cos'è un metodo, direi che dovresti cominciare da cose più semplici delle interfacce grafiche...

    Ad ogni modo, per chiarezza:
    codice:
    1:public class Scritta extends JPanel 
    2:{
    3:public void paintComponent(Graphics h) 
    4:{
    5:  super.paintComponent(h);
    6:   h.drawString("prova prova",75,100);}
    7:}
    La riga 1 è l'intestazione della classe: qui si dichiara il nome della classe, l'eventuale classe da cui discente e le eventuali interfacce che essa implementa.

    La riga 3 dichiara un metodo che si chiama paintComponent() che riceve come parametro un oggetto di tipo Graphics. Chi conosce un minimo di AWT/Swing sa che paintComponent() è un metodo della classe Component, che conseguentemente viene ereditato da JPanel (alla lunga...), quindi una nuova dichiarazione di questo metodo equivale a sottoporlo ad override (riscrittura).

    La riga 5 richiama il metodo paintComponent() della classe da cui questa deriva (in sostanza, richiama paintComponent() della classe JPanel), prima di lavorare sulla classe stessa.

    La riga 6 utilizza l'oggetto Graphics per "disegnare" sul pannello la scritta "prova prova" in posizione (75, 100).

    Ripeto: mi pare che tu sia alle prime armi... fossi in te comincerei con qualcosa di nettamente più semplice, per cominciare a prendere confidenza con il linguaggio, con la filosofia ObjectOriented e con tutti i dettagli che essa porta con se.


    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

  6. #6
    ti ringrazio per la risposta molto dettagliata e ok seguirò il tuo consiglio prima di passare alle interfacce grafiche studierò meglio le classi java e la programmazione ad oggetti in generale,il punto è che ho un libro universitario e molto difficile,almeno per me che sono alle prime armi,mi consiglieresti un libro in particolare,oppure posso trovare qualcosa in internet?????

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    230
    Anche io sto imparando il linguaggio Java, in Internet basta che fai una ricerca e trovi di tutto e di più.
    Un libro "facile" sopratutto per chi non ha mai programmato ad oggetti è:
    http://www.claudiodesio.com/ (Manula OO & Java 5)

    poi se vuoi qualcosa di molto dettagliata ti consiglio Thinking in Java di Eckel ma solo dopo che hai preso confidenza con Java

    http://mindview.net/Books/DownloadSites/

    Ciao

  8. #8
    Io ti consiglio :

    Java 2 I fondamenti 6° edizione Handbook
    Cay S. Horstmann, Gary Cornell
    McGraw-Hill

    lo usavo anche io all'inizio, mi sono trovato benissimo con la versione tascabile e poi costa poco

    ti passo anche il link :
    http://www.informatica.mcgraw-hill.i...p?item_id=1673

    ok ciao

  9. #9
    Originariamente inviato da puntino
    Anche io sto imparando il linguaggio Java, in Internet basta che fai una ricerca e trovi di tutto e di più.
    Un libro "facile" sopratutto per chi non ha mai programmato ad oggetti è:
    http://www.claudiodesio.com/ (Manula OO & Java 5)
    Ottima scelta per chi inizia... davvero fatto bene come libro... ed è gratuito
    Al mio segnale... scatenate l'inferno!

  10. #10
    ok,grazie a tutti per i consigli,allora magari per opra inizio a leggere un po il libreo consigliatomo da puntino,e mentre ordino quello consigliatomi da fcorsa anche perchè mi trovo molto meglio a studiare su materiale carteceo.

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.