PDA

View Full Version : [JAVA] Allineamento in BorderLayout/GridBagLayout


pumax84
08-10-2008, 19:59
Salve a tutti.

Un nuovo quesito mi si è presentato davanti scrivendo la mia applicazione.
Ho assegnato ad un JPanel (chiamiamolo Main per riferimento) il BorderLayout, dove nel BorderLayout.CENTER è posizionato un ulteriore JPanel (chiamiamolo Sub) con layout GridBagLayout. Gli elementi all'interno di quest'ultimo pannello (Sub per intenderci) appaiono allineati al centro, sia verticalmente, che orizzontalmente.

C'è un modo per allineare TUTTO il contenuto all'interno di Sub in alto (allineamento verticale dunque)?

Ho già provato con nome_variabile.anchor = GridBagConstraints.FIRST_LINE_START; e nome_variabile.anchor = GridBagConstraints.PAGE_START; associato al primo elemento del contenuto (che sarebbe una JLabel), ma nulla da fare.

Grazie anticipatamente.

Ciao,
Francesco

banryu79
09-10-2008, 08:00
Questo link (http://www.hwupgrade.it/forum/showthread.php?t=1335610) potrebbe esserti di aiuto.

pumax84
09-10-2008, 10:06
Questo link (http://www.hwupgrade.it/forum/showthread.php?t=1335610) potrebbe esserti di aiuto.

Intanto grazie per la risposta. Ho già quel PDF :) , che fra l'altro è fatto molto bene e mi complimento con l'autore. Purtroppo però non è specificato da nessuna parte se è possibile ancorare TUTTA la griglia (di conseguenza spostare tutti gli elementi) del GridBagLayout su un lato (a me interessa quello in alto). Infatti una delle prime cose che mette in evidenza il PDF è come la composizione degli elementi C0, C1, C2, C3 venga effettuata al centro del pannello. Ecco, io vorrei che venisse effettuata al top del JPanel.

Per fare un'analogia (spero di farmi capire meglio) è come se aprissi Word e iniziassi a scrivere al centro della pagina, anzichè su in alto.

pumax84
09-10-2008, 10:43
Per il momento ho risolto "brutalmente", ovvero ho assegnato al JPanel "Sub" (con all'interno il GridBagLayout) il BorderLayout.NORTH (anzichè CENTER) del JPanel "Main".

Comunque se qualcun'altro ha soluzioni diverse ben vengano.

banryu79
09-10-2008, 11:15
Riesci a postare un'immagine del risultato?
Facendo come hai detto nel tuo ultimo post non ottieni ciò che volevi?

pumax84
11-10-2008, 11:55
Riesci a postare un'immagine del risultato?
Facendo come hai detto nel tuo ultimo post non ottieni ciò che volevi?

Ciao banryu79. Purtroppo ho di nuovo lo stesso problema. Inserendo il JPanel nel BorderLayout.NORTH come avevo scritto nell'ultimo post riesco a visualizzare l'attività in alto. Ora che ho inserito questo JPanel in un JScrollPane (ho bisogno di una barra che mi faccia scorrere il pannello se ci sono più attività) la visualizzazione rimane sempre al centro (anche se piazzo il JScrollPane nel BorderyLayout.NORTH). Non riesco a venirne a capo...

PRIMO SCREEN: Programma con una sola attività (appena avviato)

http://img508.imageshack.us/img508/733/screen1vl1.jpg


SECONDO SCREEN: Programma con più attività.

http://img232.imageshack.us/img232/456/screen2lj2.jpg

pumax84
13-10-2008, 16:53
Altre idee? :(

banryu79
13-10-2008, 17:26
Domani guardo con calma perchè ora sto staccando dall'ufficio e stasera sono impegnato fino a tardi.

Cmunque, se ho capito bene "Activities Chart" è il JPanel [che ha come LayoutManager GridBagLayout] inserito nello ScrollPane, il tutto inserito a sua volta al centro del JPanel "principale" [che ha come LayoutManager BorderLayout], mi confermi questo?

Se è così forse potresti ovviare settando come LayoutManager di "Activities Chart" un BorderLayout per inserire al suo interno un ulteriore JPanel in BorderLayout.NORTH; quest'ultimo poi avrebbe come LayoutManager il GridbagLayout dove inserisci le tue activities.

In ogni caso ti segnalo anche questa risorsa (http://www.miglayout.com/), casomai non la conoscessi.

pumax84
13-10-2008, 18:45
Domani guardo con calma perchè ora sto staccando dall'ufficio e stasera sono impegnato fino a tardi.
Ti risparmio per domani (leggi dopo)! :D Ti sono comunque grato, per tutta la pazienza che hai avuto (e continui ad avere nell'altro topic) con me! :)


Cmunque, se ho capito bene "Activities Chart" è il JPanel [che ha come LayoutManager GridBagLayout] inserito nello ScrollPane, il tutto inserito a sua volta al centro del JPanel "principale" [che ha come LayoutManager BorderLayout], mi confermi questo?

Se è così forse potresti ovviare settando come LayoutManager di "Activities Chart" un BorderLayout per inserire al suo interno un ulteriore JPanel in BorderLayout.NORTH; quest'ultimo poi avrebbe come LayoutManager il GridbagLayout dove inserisci le tue activities.
OTTIMA INTUIZIONE ED IDEA!!!!!!!!!!!

Fino ad ora avevo perso tempo a cercare qualche opzione d'allineamento nello ScrollPaneLayout. Avevo provato anche a reinserire lo JScrollPane nel NORTH del JPanel center e invece (GIUSTAMENTE) andava inserito un pannello al suo interno. Sei un grande, a volte le cose che si hanno sotto il naso sono le ultime ad essere notate. GRAZIE di cuore!

Guarda un po': :D

http://img507.imageshack.us/img507/9954/screenfq2.jpg


In ogni caso ti segnalo anche questa risorsa (http://www.miglayout.com/), casomai non la conoscessi.
Grazie mille, non la conoscevo! :)

banryu79
14-10-2008, 08:05
Di nulla, figurati :)