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.