Java コードは、さまざまなスタイルや方法で作成できます。Visual Editor は、生成した Java コードに対して特定のスタイルを使用します。
Visual Editor for Java が生成する有効な Java コードは、適切にコンパイルし、実行することができます。また、Visual Editor は、既存の Java コードを構文解析するときに、規則を使用して、「設計」ビュー内で視覚化するコードのエレメントを決定します。
構文解析可能なコードに対する規則
コードが以下の基準のいずれかを満たしている場合、Visual Editor for Java は、「設計」ビュー内でコードを視覚化しようとします。
このほかに、グラフィカルな「設計」ビューでコンポーネントを視覚化する前に Visual Editor が確認する必要のある、以下のような要件があります。
- フィールドが、get メソッド内でインスタンス生成されていること。
あるいは、Bean が、Visual Editor の「設定」ページの「パターン・スタイル」タブにリストされている初期化メソッドで初期化されていること。
以下のイメージで、jbInit、initComponents、および initialize メソッドが、初期化メソッドとして指定されていることに注意してください。
- 行にコンパイル・エラーがないこと。
- クラスのロードおよびインスタンス化が有効であること。
- ほとんどの配列初期化式が評価不能であること。
- + オペランドを使用する算術またはストリング連結を含む式は評価されないこと。
ほとんどの式は正常に構文解析されますが、すべての式が正しく評価できるわけではありません。
評価できない場合は、ビュー内の Java Bean に警告符号が表示され、その Bean が「設計」ビューまたは「Java Bean」ビューで選択されたときに、失敗の理由が状況表示行に表示されます。
警告アイコンは、キャンバスにも表示されます。
Visual Editor によって生成されるコード
- Visual Editor は、initialize() メソッドを呼び出すデフォルトのコンストラクターを生成します。
このメソッドは、クラスのプロパティーの値を設定します。
- アプレットの場合、初期プロパティー値を設定するコードは init() です。
このコードは、アプレット・ブラウザー自体によって実行されるので、コンストラクターからは呼び出されません。
- オプション: Visual Editor が、コンポーネントに try{}catch() ブロックを生成するよう指定することができます。このブロックは、初期化中にスローされるすべての例外を連続してキャッチするので、例外が抑止されるというリスクが大きくなります。
したがって、その代わりに例外をパスさせるほうが適しています。
このオプションは、Visual Editor の「設定」() の「コード生成」タブで設定できます。
以下のコードは、try{}catch() ブロックで初期化される JPanel を示しています。
private JPanel getJPanel1() {
if (jPanel1 == null) {
try {
jPanel1 = new JPanel();
}
catch (java.lang.Throwable e) {
// TODO: Something
}
}
return jPanel1;
}
以下のコードは、コードの try{}catch() ブロックを使用しない JPanel を示しています。private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
}
return jPanel;
}
- オプション: Visual Editor で、生成された各式にマーキングするコメントが追加されるように指定することもできます。
これは、手書きのコードと生成されたコードを区別する際に役立ちます。以下のコード行は、このようなコメントの例です。
this.add(getJPanel(), null); // Generated
このオプションをオンにするには、Visual Editor の設定の「コード生成」タブの「新しい式のコメントを生成」チェック・ボックスを選択します。
- Swing/AWT の場合、Visual Editor は、単一の Java Bean をインスタンス生成して戻す getPanel() などのメソッドを生成しますが、
これは必要条件ではありません。
1 つのメソッドは複数の Java Bean をインスタンス生成することができるので、そのメソッドの戻り値は、
フィールドが Java Bean であるかどうかを認識することに関しては重要ではありません。
フィールド anOKButton および ivjTableModel を Java Bean として
組み込むには、それらの Java Bean をクラスの get メソッド内で
インスタンス生成する必要があります。
- SWT の場合、Visual Editor はコンポジットを拡張するクラスごとに private void createFoo() メソッドを生成し、子の Bean はすべて同一のメソッド内で初期化されます。
- 編集されたクラスが Java Bean を拡張する場合、編集されるインスタンスは 「this」 パーツと呼ばれる特殊な
Java Bean で表現されます。
「this」パーツは「設計」ビューや「Java Bean」ビューから削除できません。
「this」パーツのプロパティーの初期設定メソッドは initialize() メソッド内で行われます。
「this」 パーツは、「プロパティー」ビュー上での設定が可能なプロパティーがある場合に、
「設計」ビューと「Java Bean」ビューのみに表示されます。
プロパティーに対する set メソッドが initialize() メソッド内で生成されるか、
(クラスが java.awt.Applet を拡張している場合には) init() メソッドが使用されます。