Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Sun1
    Registrato dal
    Feb 2006
    Messaggi
    81

    Come affrontare al meglio Swing? Meglio un plugin x facilitarne l'utilizzo?

    Ciao a tutti ragazzi,
    ho iniziato a sviluppare un gestionale in java (ho sempre e solo sviluppato applicazioni web) e mi sono imbattuta nella complessità della gestione delle interfacce con java. Allora facendo qualche ricerca mi sono imbattuta nel framework Swing ed ho visto che esistono plugin per Eclipse per facilitarne l'utilizzo. Così ho provato il plugin Visual Swing, ma sinceramente l'ho trovato complesso da utilizzare...o meglio...è vincolante...troppo guidato...ti lascia poco spazio alla libera programmazione...voi cosa utilizzate per la gestione delle interfacce? Utilizzate qualche plugin o no?

    Grazie in anticipo!
    Ciao

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Come affrontare al meglio Swing? Meglio un plugin x facilitarne l'utilizzo?

    Originariamente inviato da Sun1
    Così ho provato il plugin Visual Swing, ma sinceramente l'ho trovato complesso da utilizzare...o meglio...è vincolante...troppo guidato...ti lascia poco spazio alla libera programmazione...voi cosa utilizzate per la gestione delle interfacce? Utilizzate qualche plugin o no?
    I plugin per la editazione "visuale" della interfaccia grafica io li sconsiglio sempre. Oltretutto generano del codice che è una emerita ciofeca (lungo, prolisso, non facilmente comprensibile/manutenibile).

    La soluzione? Fare ... a mano. Ma facendolo in modo logico, sensato, suddividendo e incapsulando ciò che è possibile, sfruttando i principi della programmazione Object Oriented.

    Vuoi un esempio? Devi fare supponiamo delle finestre (dialog) fatte tutte con un contenuto del genere:

    codice:
    +----------------------------------+
    |                                  |
    |  Nome     [............]         |
    |  Cognome  [...................]  |
    |                                  |
    |          OK   Annulla            |
    +----------------------------------+
    Una griglia con N righe e ognuna ha a sinistra una etichetta e a destra un componente (o più in fila se necessario, ma questa sarebbe già una variante).
    Al fondo due classici pulsanti centrati OK/Annulla.

    Non ne devi fare solo 1 o 2 di dialog del genere. Ma magari tante, una per la gestione dei dati di una persona, poi di un prodotto, poi per un ordine, ecc.....

    Cosa fai? Rifai da zero tutto quanto per ogni dialog? Nooooo.

    Usi la OOP.

    Si potrebbe definire una classe FormDialog che estende JDialog. Al suo interno crea un JPanel (vuoto) che ha un GridBagLayout per gestire la griglia da mettere sopra e poi un altro JPanel con magari un BoxLayout orizzontale per gestire i due pulsanti da mettere sotto.
    In pratica si occupa di tutto ma non del contenuto superiore. Offre però ad una sottoclasse un metodo es.: protected void aggiungiCampo(String etichetta, JComponent comp)

    Cosa potrebbe fare una sottoclasse? (molto abbozzato)

    codice:
    class PersonaFormDialog extends FormDialog {
        private JTextField nomeTextField = new JTextField(30);
        private JTextField cognomeTextField = new JTextField(40);
    
        public PersonaFormDialog() {
            super("Inserimento Dati Persona");
            aggiungiCampo("Nome", nomeTextField);
            aggiungiCampo("Cognome", cognomeTextField);
            ....
            pack();
        }
    
        ....
    }
    C'è sicuramente dell'altro da gestire ma la creazione della dialog è tutta qua. Perché il "grosso" è stato fatto in FormDialog.

    Insomma. Hai capito? La editazione "visuale" di una interfaccia non ti "salva". Ti salva la OOP.
    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 L'avatar di Sun1
    Registrato dal
    Feb 2006
    Messaggi
    81
    Si certo, comprendo bene quello che dici Andbin...utilizzo la OOP da qualche anno quindi nn ho difficoltà ad utilizzarla anche in questo contesto.
    A questo punto credo di dover cercare un buon manuale di Swing per comprenderne al meglio gli oggetti.
    Tu hai qualche manuale da suggerirmi? Se fosse in italiano sarebbe meglio

    Grazie ancora

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Sun1
    Tu hai qualche manuale da suggerirmi? Se fosse in italiano sarebbe meglio
    In italiano non so quanto ci sia .... ma sicuramente poco.
    Un libro su Swing (in inglese) che io ho è: The Definitive Guide to Java Swing, Third Edition

    Poi comunque c'è sempre il tutorial ufficiale della Sun che spiega abbastanza su Swing/Java 2D.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Sun1 io ho usato NetBeans per fare le cose in modo visuale.
    E adesso sto riscrivendo tutto il codice, sempre con NetBeans che sicuramente facilita per la sintassi e il controllo dell'ortografia propria di Java.
    Ma senza usare i form visuali.
    Ci metterò tempo, è vero, a volte gli allineamenti dei componenti non saranno quelli voluti, è vero. Ma metterci mano, come ha detto andbin, sarà sicuramente più immediato.
    al volante son nervoso

  6. #6
    io ti consiglio, appena acquisisci un po' di familiarità con swing, di costruirti una sorta di programmino, un 'wizard' per intenderci, che ti permetta di aggiungere facilmente i vari componenti e che generi un template seguendo la linea costruttiva che ritieni più comoda. In questa maniera sarà più facile editare il codice. Ci vuole davvero poco, e lo puoi sempre ampliare pian piano.
    Digicasper ;-)

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.