Я использую SwingMetaWidget. В моем коде у меня есть диалоговое окно, к которому я передаю объект домена динамически, и это приведет к разному количеству компонентов на основе объекта домена. Я хотел бы, чтобы метавиджет возвращал свой предпочтительный размер в зависимости от результатов проверки. Как я могу это достичь. Чтобы проиллюстрировать мою точку зрения, давайте рассмотрим пример учебника.Как получить Swing MetaWidget для динамического изменения его размера
Основной код:
package com.myapp;
import javax.swing.*;
import org.metawidget.swing.*;
public class Main {
public static void main(String[] args) {
Person person = new Person();
SwingMetawidget metawidget = new SwingMetawidget();
metawidget.setToInspect(person);
JFrame frame = new JFrame("Metawidget Tutorial");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(metawidget);
frame.setSize(400, 250);
frame.setVisible(true);
}
}
домена объекта:
package com.myapp;
public class Person {
private String mName;
private int mAge;
private boolean mRetired;
public String getName() { return mName; }
public void setName(String name) { mName = name; }
public int getAge() { return mAge; }
public void setAge(int age) { mAge = age; }
public boolean isRetired() { return mRetired; }
public void setRetired(boolean retired) { mRetired = retired; }
}
Если удалить строку 'frame.setSize (400, 250);' Рама полностью разрушается и ничего не показывает. Image of Collapsed Frame
Есть ли способ показать достаточно JFrame, чтобы увидеть все компоненты Metawidget (мне нужно будет вызвать пакет() JFrame)? Меня больше беспокоит высота. Я могу установить для него фиксированную ширину.
Image of the JFrame with the right size