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
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:
ma voglio che la componente centrale di occupare tutto lo spazio disponibile.
_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
Ora ho aggiunto una SSCCE. Qualsiasi aiuto è apprezzato. :) – Goatcat
non capisco perché fai crescere tutte le colonne se vuoi che uno di loro prenda tutto lo spazio in eccesso – kleopatra