Por que o BoxLayout não permite alterar a largura de um JButton, mas permite alterar a altura?

Estou tentando obter o layout de umJDialog meu para ajustar-se a uma aparência específica que um programa no qual estou portando para Java, usei vários LayoutManagers antes com grande sucesso, mas, por alguma razão, parece que não consigo fazer isso funcionar. Meu objetivo é ter o lado direito (leste) doJDialog conter um botão "Localizar próximo" e "Cancelar" em uma ordem de cima para baixo e, em seguida, qualquer espaço extra abaixo para que os dois botões estejam sempre na parte superior doJDialog, por algum motivoBoxLayout ignora continuamente qualquer tentativa de alterar (é aqui que estou perdido) a largura de umJButton. Código a seguir.

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

Não importa o que eu tente,cancel sempre mantém seu tamanho normal. eu tenteisetMinimumSize() esetMaximumSize() com os mesmos parâmetros quesetPreferredSize sem sorte. Eu até tenteicancel.setPreferredSize(new Dimension(500, 500)); e a altura dos botões foi a única coisa ajustada, AINDA manteve a largura padrão que foi fornecida.

Para esclarecer qualquer dúvida, eis a aparência (agora que eu terminei) e você verá que os botões "Localizar próximo" e "Cancelar" não são do mesmo tamanho.