Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    residenza
    Firenze
    Messaggi
    260

    Estendere la classe per ogni comonente grafico?

    Buonasera a tutti,
    mi sto cimentando con la GUI in Java.
    Volevo chiedere un parere a tutti voi, più che una domanda è un parere!

    Praticamente ho creato una classe che estende JFrame e tutti i vari pannelli, botoni, jtextfield eccettera li ho creati e trattati all'interno della classe JFrame. L'unico problema è che sono arrivato in un attimo a 1000 righe di codice, ora volevo chiedervi.

    Mi conviene separare in classi i vari componenti quali bottoni, label ecc?

    Nel senso che creo una classe che estende il proprio componente quindi per esempio una classe per i bottoni che estende JButton una per le JtextField che estende JTextField ecc ed in ogni classe implemento i rispettivi listener?

    Non so se mi sono spiegato bene!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Fix87 Visualizza il messaggio
    Mi conviene separare in classi i vari componenti quali bottoni, label ecc?

    quindi per esempio una classe per i bottoni che estende JButton una per le JtextField che estende JTextField ecc ed in ogni classe implemento i rispettivi listener?
    Generalmente no, a meno che ci siano ragioni ben precise. Cioè: va bene estendere es. JTextField se ad esempio molti tuoi textfield devono avere proprietà o comportamenti comuni particolari. Detto ancora in altro modo: non ti mettere ad estendere tutti i componenti solo per risparmiare codice in un altro sorgente ....

    Quote Originariamente inviata da Fix87 Visualizza il messaggio
    L'unico problema è che sono arrivato in un attimo a 1000 righe di codice
    Beh, dire 1000 righe comunque non dice molto ... bisognerebbe vedere il codice. Ci sono molte cose che possono influenzare e portare ad un numero di righe alto:
    - lo stile di scrittura del codice.
    - l'utilizzo di un GUI editor, questi generalmente tendono a generare codice prolisso e poco comprensibile. E ad esempio quando creano il codice di gestione di un evento implementano l'interfaccia e poi i suoi metodi pubblici delegano a metodi privati con nomi più specifici. Questo non è che sia "necessario" ... è così solo perché il GUI editor ha le sue convenzioni.
    - l'utilizzo di molte inner-class.
    - il voler creare una classe che fa "molte" cose insieme, ad esempio gestione della interfaccia, gestione degli eventi, degli errori, della connessione ad un DB, ecc... Questo generalmente è sbagliato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    residenza
    Firenze
    Messaggi
    260
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Beh, dire 1000 righe comunque non dice molto ... bisognerebbe vedere il codice. Ci sono molte cose che possono influenzare e portare ad un numero di righe alto:
    - lo stile di scrittura del codice.
    - l'utilizzo di molte inner-class.
    - il voler creare una classe che fa "molte" cose insieme, ad esempio gestione della interfaccia, gestione degli eventi, degli errori, della connessione ad un DB, ecc... Questo generalmente è sbagliato.
    - Per quanto riaguarda lo stile di scrittura uso uno stile pulito tendo a raggruppare le operazioni ad elementi comuni o operazioni comuni su righe direttamente una sotto l'altra, quindi uso molti spazi.

    - Le inner class in questo momento sono quelle che mi occupano molto spazio, nonostante abbia utilizzato le Adapter

    - Purtroppo avevo creato una classe che estendeva JFrame in cui era inserita tutta le gestione dell'interfaccia, tutta la gestione degli eventi. Gli errori e il database li ho fatti in due classi separate.

    Per separare la gestione degli eventi dovrei creare una classe che implementa le interfacce degli eventi e poi chiamarla nell'interfaccia per ogni evento che mi serve?

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.