Warum erlaubt mir BoxLayout nicht, die Breite eines JButton zu ändern, aber ich kann die Höhe ändern?

Ich versuche das Layout eines @ zu bekommJDialog von mir, um einem bestimmten Look zu entsprechen, den ein Programm hat, in dem ich auf Java portiere, habe ich zuvor mehrere LayoutManager mit großem Erfolg verwendet, aber aus irgendeinem Grund kann ich dieses Programm anscheinend überhaupt nicht zum Laufen bringen. Mein Ziel ist es, die rechte (Ost-) Seite des @ zu habeJDialog enthält die Schaltflächen "Weitersuchen" und "Abbrechen" in einer Reihenfolge von oben nach unten und dann ein zusätzliches Leerzeichen darunter, sodass sich die beiden Schaltflächen immer oben auf dem @ befindeJDialog, noch aus irgendeinem GrundBoxLayout ignoriert ständig alle Versuche, die Breite eines @ zu ändern (hier bin ich verloreJButton. Code folgt.

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());  

Egal was ich versuche,cancel behält immer seine normale Größe. Ich habe es versuchtsetMinimumSize() undsetMaximumSize() mit den gleichen Parametern wiesetPreferredSize ohne glück. Ich habe es sogar versuchtcancel.setPreferredSize(new Dimension(500, 500)); und die Höhe der Buttons war das einzige, was angepasst wurde, es behielt immer noch die vorgegebene Breite bei.

Um alle Fragen zu klären, sehen Sie hier, wie es aussieht (jetzt, wo ich es fertiggestellt habe), und Sie werden feststellen, dass die Schaltflächen "Weitersuchen" und "Abbrechen" nicht dieselbe Größe haben.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage