¿Por qué BoxLayout no me permite cambiar el ancho de un JButton sino que me permite cambiar la altura?
Estoy tratando de obtener el diseño de unJDialog
para adaptarme a un aspecto particular que tiene un programa en el que estoy transfiriendo a Java, he usado varios LayoutManagers antes con gran éxito pero, por alguna razón, parece que no puedo hacer que funcione en absoluto. Mi objetivo es tener el lado derecho (este) delJDialog
contiene un botón "Buscar siguiente" y "Cancelar" en orden de arriba hacia abajo y luego cualquier espacio adicional debajo para que los dos botones estén siempre en la parte superiorJDialog
pero por alguna razónBoxLayout
ignora continuamente cualquier intento de cambiar (aquí es donde me pierdo) el ancho de unJButton
. El código sigue.
JButton findNext = new JButton("Find Next");
JButton cancel = new JButton("Cancel");
cancel.setPreferredSize(new Dimension((int)findNext.getPreferredSize().getWidth(),
(int)cancel.getPreferredSize().getHeight()));
JPanel example = new JPanel();
example.setLayout(new BoxLayout(example, BoxLayout.Y_AXIS));
example.add(findNext);
example.add(cancel);
example.add(Box.createGlue());
No importa lo que intentecancel
Siempre conserva su tamaño normal. He intentadosetMinimumSize()
ysetMaximumSize()
con los mismos parámetros quesetPreferredSize
sin suerte Incluso he intentadocancel.setPreferredSize(new Dimension(500, 500));
y la altura de los botones fue lo único que se ajustó, TODAVÍA retuvo el ancho predeterminado que se le dio.
Para aclarar cualquier pregunta, esto es lo que parece (ahora que lo he terminado) y verá que los botones "Buscar siguiente" y "Cancelar" no son del mismo tamaño.