Qualcosa non è giusto qui. Sto cercando di ottenere il pulsante più a destra (etichettato "help" nell'esempio qui sotto) per essere allineato a destra alla JFrame, e gli enormi pulsanti per avere la loro larghezza legata alla JFrame ma almeno di 180 pixel ciascuno. Ho avuto l'enorme vincolo del pulsante per funzionare, ma non il giusto allineamento.miglayout: non è possibile ottenere il corretto allineamento per funzionare
ho pensato che il corretto allineamento è stato realizzato da gapbefore push
(come in this other SO question), ma non riesco a capirlo.
Qualcuno può aiutarmi?
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
public class RightAlignQuestion {
public static void main(String[] args) {
JFrame frame = new JFrame("right align question");
JPanel mainPanel = new JPanel();
frame.setContentPane(mainPanel);
mainPanel.setLayout(new MigLayout("insets 0", "[grow]", ""));
JPanel topPanel = new JPanel();
topPanel.setLayout(new MigLayout("", "[][][][]", ""));
for (int i = 0; i < 3; ++i)
topPanel.add(new JButton("button"+i), "");
topPanel.add(new JButton("help"), "gapbefore push, wrap");
topPanel.add(new JButton("big button"), "span 3, grow");
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new MigLayout("",
"[180:180:,grow][180:180:,grow]","100:"));
bottomPanel.add(new JButton("tweedledee"), "grow");
bottomPanel.add(new JButton("tweedledum"), "grow");
mainPanel.add(topPanel, "grow, wrap");
mainPanel.add(bottomPanel, "grow");
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Non so abbastanza su MigLayout per rispondere a questo, ma prova a mettere un bordo su topPanel per assicurarti che sia effettivamente largo quanto la finestra. Se non lo è, ciò spiegherebbe perché Help non è allineato a destra. –