torutkのブログ

ソフトウェア・エンジニアのブログ

NetBeans 5.5のGUIレイアウトで生成したコードをJDK 6(Mustang)へ移行するには

NetBeans 5.0からは、とても使いやすいGUIレイアウトツールが付いています。これは、org.jdesktop.layoutパッケージのGroupLayoutクラスを使ってレイアウトを制御するコードを生成しています。このGroupLayoutは、JDK 6 (Mustang)から標準搭載されるようになりましたが、少々コードの修正が必要でした。

org.jdesktop.layout.GroupLayout.TRAILING  ---> javax.swing.GroupLayout.Alignment.TRAILING
org.jdesktop.layout.GroupLayout.LEADING   ---> javax.swing.GroupLayout.Alignment.LEADING
org.jdesktop.layout.GroupLayout.BASELINE  ---> javax.swing.GroupLayout.Alignment.BASELINE
org.jdesktop.layout.LayoutStyle.RELATED   ---> javax.swing.LayoutStyle.ComponentPlacement.RELATED
GroupLayout.ParallelGroupのadd(...)       ---> GroupLayout.ParallelGroupのaddComponent、addGap、addGroupのいずれか(引数の型で判断する必要あり)
GroupLayout.SequentialGroupのadd(...)     ---> GroupLayout.SequentialGropuのaddComponent、addGap、addGroupのいずれか(引数の型で判断する必要あり)
  ※ addComponentに変更する際、引数の順番を変える必要があるパターンあり。第1引数にGropuLayout.Alignment、第2引数にComponentがある場合、addからaddComponentにメソッド名を変えるほか、引数の順番をComponent, Alignmentに入れ替えます。

来月にはJDK 6が正式リリースの計画とアナウンスされていますが、まだまだJava 2 SE 5.0も現役なので(というよりやっと最近に1.4から移行するケースが増えてきたという感じ)、当面両方の対応が必要です。
NetBeansGUIコード生成は、使用するJDKによって両パターン用意できる機能が必要です。「JDK 6でもjdesktopパッケージを付ければいいじゃん」という汚ない対応はしてほしくないです。

[java]IDEの功罪
NetBeansGUI生成を便利に使いましたが、これは標準Javaに加えてorg.jdesktopパッケージが必要になります。知らずにツールを使っていると、出来上がったアプリケーションがいろんなサードパーティ製ライブラリに依存することになりかねません。

Eclipseの場合も、SWTに依存したりするかもしれません。