Я первоначально разместил этот вопрос на форуме miglayout, и после 534 просмотров и без ответов я решил попробовать его там; -)
Я попытался расширить «начальный пример» из документа MigLayout, чтобы добавить кнопку «ОК», которая всегда останется в нижней части диалогового окна.
К сожалению, единственное решение, которое я нашел, это добавить «поддельную панель», которая будет расти:
public class TestResize extends JDialog {
protected JPanel contentPane;
public TestResize() {
super((Dialog) null, "Test resize", true);
setupUI();
setContentPane(contentPane);
}
private void setupUI() {
contentPane = new JPanel(new MigLayout());
contentPane.add(new JLabel("Enter size:"), "");
contentPane.add(new JTextField(""), "grow, pushx, wrap");
contentPane.add(new JLabel("Enter weight:"), "");
contentPane.add(new JTextField(""), "grow, pushx, wrap");
// fake panel that is allowed to grow
contentPane.add(new JPanel(), "span 2, grow, pushy, wrap");
JButton okButton = new JButton("Ok");
JPanel buttonPanel = new JPanel(new MigLayout("", "[center, grow]"));
buttonPanel.add(okButton, "");
contentPane.add(buttonPanel, "dock south");
}
public static void main(String[] args) {
TestResize dialog = new TestResize();
dialog.pack();
dialog.setVisible(true);
}
}
Мне действительно не нравится этот подход ... но есть ли лучший способ?
(похоже, мне не разрешено загружать картинки, но пользовательский интерфейс, который я хочу получить, виден в моем исходном сообщении )
Спасибо!