SwingMetaWidget を使用しています。私のコードには、ドメインオブジェクトを動的に渡すダイアログがあり、ドメインオブジェクトに基づいてさまざまな数のコンポーネントが発生します。検査結果に基づいて、メタウィジェットがそのpreferredSizeを返すようにしたいと思います。どうすればこれを達成できますか。私の要点を説明するために、チュートリアルの例を見てみましょう。
メインコード:
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 );」という行を削除すると、フレームは完全に折りたたまれ、何も表示されません。 折りたたまれたフレームのイメージ
Metawidget のすべてのコンポーネントを表示するのに十分な JFrame を表示する方法はありますか (JFrame の pack() を呼び出す必要があります)。それより身長が気になります。固定幅を設定できます。