【特集】Eclipse対抗馬の本命!? NetBeansとは?(前編)
NetBeansとGlassFishの連携&VBライクなSwing開発
株式会社ガリレオ
小山博史
2008/2/18
VBライクで簡単に操作できる「Swing GUI Builder」
NetBeansには、Java GUI作成ツールである「Swing GUI Builder」が付いています。「Swing GUI Builder」は、Swing Application Framework(JSR 296)という機能とBeans Binding(JSR 295)という機能をサポートしています。
■Swing Application Frameworkとは?
Swing Application Frameworkは、Swingを使ったデスクトップ・アプリケーションを作成するためのシンプルなフレームワークです。
編集部注:Swingについて詳しく知りたい読者は、連載「SwingでJavaに強くなる」をご参照ください。
フレームワークを使うことにより、短い時間でよくある機能を実装したデスクトップ・アプリケーションを開発できます。
■Swing Application Frameworkを使うには?
Swing Application Frameworkを使うのは簡単で、新規プロジェクトを作成するときに、「Javaデスクトップ・アプリケーション」を指定します。使用するテンプレートは2種類あり、メニューバーとステータスバーを持つ単純なGUIアプリケーションを作成したいときのための「基本アプリケーション」、DBのデータに対してCRUD(Create、Read、Update、Delete)操作をするための単純なGUIアプリケーションを作成したいときのための「データベースアプリケーション」のどちらかを選んで作成します。
プロジェクトを作成した時点で、アプリケーションと対応するDesktopApplication1.java、Aboutダイアログと対応するDesktopApplication1AboutBox.java、表示される画面と対応するDesktopApplication1View.javaという3つのクラスが作成されます。
図6 3つのクラスが作成が作成された(画像をクリックすると拡大します) |
DesktopApplication1Viewクラスは[デザイン]表示ができ、[パレット]から部品をドラッグ&ドロップして、mainPanelへ配置することにより、簡単に画面デザインができます。
図7 [デザイン]表示と[パレット](画像をクリックすると拡大します) |
■Beans Bindingとは?
Beans Bindingは、2つのJava Bean間のプロパティの値を同期するための仕組みです。これを使うことにより、デスクトップ・アプリケーションで2つの部品のプロパティ値を簡単に同期できます。
例えば、リストで選択されている要素のデータを編集するテキストフィールドを提供する場合などで利用できます。Java Persistence APIとの組み合わせでDBのテーブルと同期するフォームを持つデスクトップ・アプリケーションを簡単に作成することもできます。NetBeansにおけるDB連携については、後編で解説します。
編集部注:Java Persistence APIについて詳しく知りたい読者は、連載「小山博史のJavaを楽しむ」の第3回「待望のJava SE 6 でパーシステンス」をご参照ください。
■Beans Bindingを使うには?
Beans Bindingを使う場合には、jTextFieldを右ボタンでクリックして表示されるメニューの[バインド]を使います。
jTextFieldでは、バインドできるプロパティにはtextがあります。[バインド][text]として表示される画面で[ソースをバインド]に「jList1」、[式をバインド]に「${selectedElement}」と指定します。[詳細]タブでは、さまざまなモードを指定できるので、そこで[モードを更新]で「ソースから読み取りのみ(読み取り専用)」と指定します。たったこれだけで、jTextFieldとjListの連携ができてしまいます。
ボタンがクリックされたときの動作を指定するには、[イベント]→[Action]→[actionPerformed]とします。すると、DesktopApplication1Viewクラスに下記メソッドが追加されます。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { |
ここへ、画面内のリスト(jList1)で選択されている値をjTextField1の値で更新する処理を記述します。
ちなみに、DesktopApplication1Viewクラスと、jButton1とをつなぐActionListenerクラスは、DesktopApplication1ViewクラスのinitComponents()メソッド内で無名クラスとして宣言されます。
jButton1.addActionListener(new java.awt.event.ActionListener() { |
リストの更新をするためには、例えば次のような独自のListModelを作成して、jListのmodelプロパティへlistModelを登録します。
private String[] sList = new String[] { |
jButton1ActionPerformed()メソッドでの処理は、listModelのソースであるsListを更新するようにして、次のようにしました。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { |
実行例は、次のとおりです。
図8 完成したSwingアプリケーション |
Visual Basicのような感覚でGUIを作成できるというのは、多くの開発者にとってはうれしい話です。
Swing GUI Builderが生成したコード部分は直接変更してはいけないという制約がありますが、うまく使うことにより、GUIアプリケーションの開発は飛躍的に簡単にできるようになります。デスクトップ・アプリケーションの開発で一度使うと、Swing GUI Builderは手放せなくなりそうです。
JavaFXやGlossitope開発にも役立つNetBeans
このように前編では、NetBeans 6.0.1マルチリンガル版の特徴、インストール、VBライクなSwing GUI Builderについて主に解説しましたが、いかがでしたでしょうか。
後編ではより実践的に、DB連携やGlassFishとの連携によるWebアプリケーション、JRuby on Railsアプリケーションの作成の仕方などについて解説する予定です。
ちなみにNetBeansは、連載「小山博史のJavaを楽しむ」でも紹介したJavaFX(JavaFX Script Language Support for the Netbeans IDEを使って)やGlossitopeなどのGUI開発にも役立つので、試してみてはいかがでしょうか。
■ @IT関連記事
プロファイラでメモリリークとパフォーマンス問題を解決 Java開発の問題解決を助ける(2) フリーで利用できるプロファイラ「NetBeans Profile」を使ってメモリリークとパフォーマンスの問題を解決する方法を紹介する 「Java
Solution」フォーラム 2005/8/10 |
JavaScriptを書かずにAjaxを実現するjMaki CoolなEclipseプラグイン(22) jMakiを知ってますか? タグを書くだけでAjaxが実現できる便利なライブラリです。今回はそのjMakiをさらに便利に使うプラグインを紹介します 「Java
Solution」フォーラム 2007/11/7 |
筆者プロフィール |
小山博史(こやま ひろし) Webシステムの運用と開発、コンピュータと教育の研究に従事する傍ら、オープンソースソフトウェア、Java技術の普及のための活動を行っている。Ja-Jakartaプロジェクトへ参加し、コミッタの一員として活動を支えている。また、長野県の地域コミュニティである、SSS(G)やbugs(J)の活動へも参加している。 |
1-2-3 |
INDEX 【特集】Eclipse対抗馬の本命!? NetBeansとは?(前編) 「NetBeansとGlassFishの連携&VBライクなSwing開発」 |
||
Page1 | ||
「開発環境といえばEclipse!」という人へ NetBeansの特徴 NetBeansとGlassFishの関係 GlassFishのセットアップ |
||
Page2 | ||
NetBeans最新版のセットアップ 便利なGlassFishのモジュールを使ってみよう |
||
Page3 | ||
VBライクで簡単に操作できる「Swing GUI Builder」 JavaFXやGlossitope開発にも役立つNetBeans |
ご意見、ご感想はJava Solution 会議室へどうぞ |
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|