2013-07-08 15 views
5

Sto provando a disporre i componenti e voglio impostare la larghezza in un modo specifico. Da quanto ho capito, miglayout imposta larghezza come "width min: pref: max". Quindi, nel mio caso voglio la seguente:Impostazione larghezza con miglayout

layout explained

Il mio problema è con comp2. Smette di crescere dopo circa 200px e non riesco a capire perché, dal momento che non specifica una larghezza massima.

Ho anche controllato la demo di swing di miglayout ma non hanno il mio caso preciso lì. Ne hanno uno con larghezza illimitata, ma non con larghezza minima specificata.

Per assicurarsi che il pannello si espanda, ho impostato lo sfondo del pannello in grigio, e posso vedere che si espande senza problemi.

Per favore dimmi se qualcosa deve essere chiarito e sarò lieto di provare a spiegare meglio.

EDIT: Ecco uno SSCCE

import java.awt.Color; 
import javax.swing.*; 
import net.miginfocom.swing.MigLayout; 

public class SSCCE { 
    public static void main(String[] args) { 
     JFrame frame = new JFrame(); 
     JPanel panel = new JPanel(new MigLayout(
       "", 
       "[grow, fill]", 
       "")); 
     panel.setBackground(Color.LIGHT_GRAY); 

     JButton comp1 = new JButton("Comp1"); 
     JButton comp2 = new JButton("Comp2"); 
     JButton comp3 = new JButton("Comp3"); 

     panel.add(comp1, "width 50:150:150, growx"); 
     panel.add(comp2, "growx"); 
     panel.add(comp3, "width 50:70:70, growx");  

     frame.add(panel); 
     frame.pack(); 
     frame.setVisible(true);  
    } 
} 

mi fa crescere, ma voglio che prendere tutto lo spazio disponibile, e non è così. Può avere qualcosa a che fare con le impostazioni sul pannello?

EDIT 2: Con questo codice:

panel.add(comp1, "width 50:150:150"); 
panel.add(comp2, "width 10:n:n"); 
panel.add(comp3, "width 50:70:70, right"); 

ottengo questo:

enter image description here

ma voglio che la componente centrale di occupare tutto lo spazio disponibile.

+0

_stops crescita dopo circa 200px_ non possono riprodurre: tutti crescono (alla fine sono quasi equamente dimensioni) meglio per mostrare uno SSCCE che illustra il comportamento – kleopatra

+0

Ora ho aggiunto una SSCCE. Qualsiasi aiuto è apprezzato. :) – Goatcat

+0

non capisco perché fai crescere tutte le colonne se vuoi che uno di loro prenda tutto lo spazio in eccesso – kleopatra

risposta

6

Ritenere liberamente :-)

Ecco un frammento di codice che dà tutto lo spazio extra per la colonna centrale.

JPanel panel = new JPanel(new MigLayout(
     "debug", 
     "[][grow, fill][]", 
     "")); 
JButton comp1 = new JButton("Comp1"); 
JButton comp2 = new JButton("Comp2"); 
JButton comp3 = new JButton("Comp3"); 

panel.add(comp1, "width 50:150:150"); 
panel.add(comp2); 
panel.add(comp3, "width 50:70:70");  
+0

Wham bam, problema risolto. Grazie gentile signore! : D – Goatcat

+3

felice di poter aiutare, gentile signora :-) – kleopatra

Problemi correlati