Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Creazione GUI con Java

  1. #1

    Creazione GUI con Java

    Ragazzi il mio non è un vero è proprio problema ma più che altro sono qui per un consiglio.
    Ultimamente il mio livello di programmazione con Java è molto cresciuto, scrivo software sempre più complessi che spesso necessitano di GUI altrettanto complesse!

    Di solito io lavoro su di un JPanel senza specificare alcun tipo di Layout da applicare allo stesso, insomma estendo il pannello fino alla dimensione necessaria per contenere tutte le componenti Swing e lo disegno.

    Questo tipo di progettazione ovviamente è molto limitante per quello che riguarda l'aspetto della GUI, ad esempio se massimizzo la finestra mi resta il pannello all'interno più piccolo spostato nell'angolo destro, cercavo quindi di capire se dovevo approcciare diversamente il problema ad esempio usando i Layout.

    Considerando che ci sono più possibilità però da questo punto di vista, layout a griglia, a griglia variabile, basati sui bordi, cercavo di capire se c'erano delle linee guida piuttosto che delle consuetudini diffuse da applicare quando disegno un interfaccia.

    Stavo valutando di realizzare l'interfaccia con layout a griglia variabile, che è più adattabile, ma i risultati non sono proprio confortanti, campi che si allungano troppo e gestione degli spazi un po complessa mi hanno un po frenato!

    Gradirei qualche vostro parere/consiglio giusto per capire meglio come muovermi quando progetto un interfaccia... cosa che come sapete è molto importante per un software.

    Saluti, Carlo.

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

    Re: Creazione GUI con Java

    Originariamente inviato da orion91
    Di solito io lavoro su di un JPanel senza specificare alcun tipo di Layout da applicare allo stesso
    Male.

    Originariamente inviato da orion91
    Considerando che ci sono più possibilità però da questo punto di vista, layout a griglia, a griglia variabile, basati sui bordi, cercavo di capire se c'erano delle linee guida piuttosto che delle consuetudini diffuse da applicare quando disegno un interfaccia.
    Le possibilità sono diverse:
    a) Usare un tool per "disegnare" graficamente la interfaccia utente. È quello che succede con certi IDE. Solo che il codice generato è .... lungo, prolisso, poco comprensibile, non facilmente modificabile "a mano" e penoso. Io personalmente lo sconsiglio sempre.
    b) Scrivere da sé il codice per la GUI in modo da usare un unico layout manager "complesso" come GroupLayout o SpringLayout che già da solo permetterebbe di disporre in maniera sofisticata tutti i componenti dentro un unico "contenitore". Anche questo non è facile.
    c) Scrivere da sé il codice per la GUI in modo da usare i layout manager più semplici (BorderLayout, GridLayout, GridBagLayout, ecc...). Qui l'abilità sta solo nel saper "inscatolare" componenti e contenitori dentro altri contenitori e così via ... sfruttando eventualmente diversi layout manager.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Beh immaginavo che la mia pratica non fosse proprio ottima..

    D'accordo anche sugli strumenti IDE, uso Netbeans, è veloce per creare le GUI ma è anche molto restrittivo, per fare una semplice modifica al costruttore di un componente si deve fare un casino.. diciamo che adesso mi sono abituato.
    Vedo però che siamo d'accordo sul fatto che per GUI con un certo numero di componenti semplifica notevolmente il lavoro e riduce non poco i tempi di realizzazione.

    Leggevo in giro dei layout che posso applicare ad un pannello e tra tutti mi ha colpito quello a griglia variabile sicuramente, infatti sto facendo qualche test proprio in questi giorni, anche quello di tipo Spring, insomma a molla, sembrava interessante ma ancora non l'ho provato.

    Da qualche parte leggevo che tutte le tipologie di layout possono essere utili, insomma conta quello che si sta progettando in quel momento, è davvero così?
    Mi conviene impararli tutti oppure concentrarmi solo su qualcuno? Volevo cercare di capire anche questo. Se qualcuno di essi aveva migliori caratteristiche di adattabilità per la progettazione di GUI generiche senza andare troppo nello specifico.

    Saluti, Carlo.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da orion91
    Da qualche parte leggevo che tutte le tipologie di layout possono essere utili, insomma conta quello che si sta progettando in quel momento, è davvero così?
    Dipende ovviamente da cosa devi fare di preciso. Pensa se volessi fare un semplice editor di testo senza tanti fronzoli, magari solo con una "toolbar" e una "status" bar. Basterebbe addirittura usare il BorderLayout predefinito del content pane di un JFrame. In NORTH metti un JToolBar, in CENTER metti un JScrollPane (che contiene un JTextArea o simile) e in SOUTH potrebbe esserci una semplice JLabel che mostra delle informazioni.
    In questo caso .... è semplice. In altri casi non lo è sicuramente.

    Originariamente inviato da orion91
    Mi conviene impararli tutti oppure concentrarmi solo su qualcuno?
    Ti conviene imparare almeno quelli "base" e più semplici, ovvero:
    - BorderLayout
    - BoxLayout
    - CardLayout
    - FlowLayout
    - GridBagLayout
    - GridLayout

    Se poi hai tempo/voglia di comprendere anche quelli più complessi, allora puoi vedere:
    - GroupLayout
    - SpringLayout

    che sono decisamente molto più complessi.

    Vedi il tutorial: A Visual Guide to Layout Managers

    E comunque la realizzazione di una interfaccia "complessa" può anche essere fatta usando i layout manager più semplici, come ho detto prima semplicemente "inscatolando" contenitori dentro altri contenitori e sfruttando eventualmente più layout manager in tutto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Grazie mille andbin. Sei stato molto chiaro ed esaustivo nei tuoi interventi.

    Ad esempio la possibilità di usare più contenitori insieme, intesi come pannelli, contemporaneamente e con diversi layout non mi era mai venuta in mente.

    Seguirò sicuramente il tuo consiglio, sto già leggendo quel tutorial che mi hai linkato.

    Saluti, Carlo.

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da orion91
    Seguirò sicuramente il tuo consiglio, sto già leggendo quel tutorial che mi hai linkato.
    Anche questo potrebbe esserti utile
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Grazie anche a te Alex'87! Ogni suggerimento è sempre gradito.

    Appena ho un po di tempo lo leggero sicuramente.

    Saluti, Carlo.

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.