Algo no está bien aquí. Estoy intentando que el botón de la derecha (etiquetado como "ayuda" en el ejemplo a continuación) se alinee a la derecha con el JFrame, y que los botones grandes tengan su ancho vinculado al JFrame, pero que sean al menos 180 píxeles cada uno. Obtuve la gran restricción de botón para trabajar, pero no la alineación correcta.miglayout: no se puede alinear correctamente al trabajo
pensé que la alineación correcta se logra mediante gapbefore push
(como en this other SO question), pero no puedo entenderlo.
¿Alguien me puede ayudar?
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);
}
}
No sé lo suficiente sobre MigLayout para responder a esto, pero intente poner un borde en topPanel para asegurarse de que en realidad es tan ancho como la ventana. Si no es así, eso explicaría por qué la Ayuda no está alineada a la derecha. –