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

    [JAVA] domanda sui principi di programmazione.

    Ciao a tutti. Capisco se alcuni dei commenti che riceverò saranno "becero!" ma ho un dubbio su quelle che sono le basi della programmazione ad oggetti. Sto realizzando un progetto in Java di cui dovrò discutere il codice; il programma è funzionante e ottimizzato. Quello che avrei bisogno di sapere è se a livello teorico (visto che il programma è funzionante) bisogna estendere sempre le classi base che si vanno ad utilizzare; mi spiego meglio: se io volessi usare un JPanel con una immagine di sfondo dovrei estendere la classe JPanel e ridefinire i metodi per disegnare l'immagine?Oppure non è scorretto dichiarare un JPanel nella form e di seguito richiamare i metodi per disegnare l'immagine?
    Ripeto mi rendo conto che è una domanda stupida.

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Bhe la OOP è molto vasta, dipende anche come hai progettato tutto il programma.

    Comunque si, se hai bisogno di disegnare su un JPanel o mostrare un immagine l'ideale è estendere la classe JPanel ed implementare il metodo paintComponent(Graphics g);
    Dire che debbono sempre essere estere è sbagliato comunque, dipende dalla necessità. ^^

  3. #3
    Grazie, sei stato gentilissimo, specialmente perchè non mi hai dato del becero. Ne approfitto e ti faccio un'altra domanda. Ci sono quindi dei principi da seguire per decidere se estendere o meno una classe? mi riferisco specialmente ai componenti swing.


  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Aggiungo che l'esempio citato è particolare.
    Non hai altro modo di disegnare su un JPanel se non ridefinendone il comportamento standard... come potresti, altrimenti, disegnare sul JPanel? Il comportamento standard è quello di disegnare uno sfondo opaco (se richiesto) con un colore uniforme dettato dalle politiche del Look & Feel.

    La chiave è tutta qui: se hai bisogno di "ridefinire" il comportamento standard di una classe, la dovrai estendere. Se ciò che essa fornisce è già più che sufficiente, al contrario, la andrai solo ad usare.

    Ad esempio, se devi visualizzare del testo, non ha senso "estendere" JLabel... è sufficiente "usare" JLabel.


    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
    Sei stato chiarissimo. Ti ringrazio.

    ciao.

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.