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

    [Java GUI] Ancoraggi e proporzioni

    Ciao a tutti,
    ho creato un'applicazione in java (un gestionale per aziende che si occupano di impianti elettrici) contenente molti jFrame diversi.
    A pochi giorni dalla scadenza (devo pubblicare il tutto) mi trovo con un problema assai fastidioso.
    Quando il cliente ridimensiona le varie finestre , i componenti al loro interno creano il caos. Alcune si sovrappongono, alcune rimangono fisse , altre si ridimensionano con la finestra e altre no.
    Sono con l'acqua alla gola e vi chiedo se esiste un modo per settare tutti i componenti in una sola volta , in modo che si mantengano sempre le proporzioni, cioe' in modo che il quando la finestra si allarga, tutto si allarga con essa.
    Ho creato la mia applicazione dal pannello grafico su NEtbeans , e gradire gestire questo problema da interfaccia e non da codice.

    Pendo dalle vostre labbra.
    Grazi!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Sogeking_87 Visualizza il messaggio
    Quando il cliente ridimensiona le varie finestre , i componenti al loro interno creano il caos. Alcune si sovrappongono, alcune rimangono fisse , altre si ridimensionano con la finestra e altre no.
    È questione di vedere se sono stati usati layout manager, quali e come.

    Quote Originariamente inviata da Sogeking_87 Visualizza il messaggio
    Sono con l'acqua alla gola e vi chiedo se esiste un modo per settare tutti i componenti in una sola volta , in modo che si mantengano sempre le proporzioni, cioe' in modo che il quando la finestra si allarga, tutto si allarga con essa.
    L'ideale per queste cose è avere una solida conoscenza del layout in AWT/Swing e di tutti i principali layout manager, almeno quelli basilari: BorderLayout, GridLayout, FlowLayout, ecc.... Ed usare questi in modo appropriato, possibilmente "inscatolando" componenti dentro contenitori, dentro ulteriori contenitori, ecc... in modo da sfruttare al meglio le potenzialità di ciascuno di essi.

    Quote Originariamente inviata da Sogeking_87 Visualizza il messaggio
    gradire gestire questo problema da interfaccia e non da codice.
    Non è proprio una buona soluzione .... gli editor di GUI tipicamente generano del codice che dal mio punto di vista e opinione è sostanzialmente immondizia ....
    Usano layout manager complessi, tipo GroupLayout/SpringLayout che sono tra i più complicati, se non addirittura layout manager custom forniti dall'ambiente di sviluppo stesso.
    E il codice che generano è prolisso, contorto e in gran parte incomprensibile.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da andbin Visualizza il messaggio
    gli editor di GUI tipicamente generano del codice che dal mio punto di vista e opinione è sostanzialmente immondizia ...
    Non è solo la tua opinione... è opinione largamente condivisa.


    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

  4. #4
    Ovviamente sono d'accordo con Andbin.
    Nel tuo caso, se può servirti, applica ai JFrame un setResizable(false) e così disabiliti la ridimensione delle finestre.
    Ovviamente è una forzatura, ma potrebbe darti un pò di tempo per rifare le interfacce grafiche a mano manina o con qualche tool di permissivo di Netbeans(io uso Jigloo di Eclipse per avere una finestra di massima, ma poi per il lavoro di fino faccio a mano).
    Ciao.
    Ultima modifica di schumy2000; 19-03-2014 a 13:16
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  5. #5
    Grazie a tutti per le risposte, ma visto il tempo residuo ho optato per la scelta di Schumy2000 e cioè ho applicato a tutte le finestre un setresizable false.
    Ora ho un altro piccolo problemino.
    Io sto' lavorando con Netbeans 7.3.1 e ho creato un menù principale che mi apre in tutti i vari form del mio programma. Se avvio il tutto dalla classe principale, cioè dal menu' , ho un aspetto ....
    Se invece mando in esecuzione una delle classi che contiene un form , mi mostra tutti i componenti con uno stile grafico migliore: bordi arrotondati , scrollbar piu' moderne ecc.... Come mai?
    Vorrei mantenere questo stile per tutti i miei form anche passando per il menu' (il menu' è un semplice form con dei jbutton che avviano istanze delle altri classi).
    Grazie e spero di essemi spiegato bene.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Sogeking_87 Visualizza il messaggio
    Se invece mando in esecuzione una delle classi che contiene un form , mi mostra tutti i componenti con uno stile grafico migliore: bordi arrotondati , scrollbar piu' moderne ecc.... Come mai?
    Presumerei che sia il Nimbus Look and Feel.
    Netbeans quasi sicuramente ha inserito in un punto la impostazione di questo L&F. Devi assicurarti che venga fatto prima di creare qualunque cosa della GUI (tipicamente all'inizio nel main). Cambiare L&F dopo che ci sono finestre visibili è anche possibile ma richiede alcuni passi in più.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.