NetBeans プラグインクイックスタート
NetBeans プラグイン開発へようこそ
このチュートリアルでは、新しい NetBeans IDE のツールバーの作成を通して、NetBeans プラグイン開発のワークフローを簡潔に紹介します。このチュートリアルを終了すれば、NetBeans IDE のプラグインを作成、構築、およびインストールする方法に関する全般的な知識が身に付きます。
このチュートリアルを終了したら、NetBeans プラットフォームの学習のチュートリアルに進むことができます。学習の各チュートリアルは、さまざまな種類のアプリケーションに利用できる NetBeans API を幅広く網羅しています。このチュートリアルを省略し、「Hello World」アプリケーションを作成しないで学習のチュートリアルに進んでもかまいません。
目次
このチュートリアルを行うには、次の表に示すソフトウェアおよびリソースが必要です。
トラブルシューティングのために、完了したサンプルをダウンロードしてソースを調べることもできます (任意)。
このチュートリアルで作成するツールバーは、次のようになります。
ユーザーが上のツールバーで Enter キーを押すと、IDE のデフォルトブラウザが開き、ツールバーのテキストが Google 検索に送られ、開いているブラウザに結果が表示されます。このツールバーを作成するには、NetBeans API を使用して IDE の機能セットを拡張します。具体的には、ツールバーのボタンによって呼び出されるアクションを作成します。次に、GUI コンポーネントとして JLabel および JTextField を含む、Swing JPanel を作成します。最後に、JPanel を返すように、アクションの getToolbarPresenter() メソッドをオーバーライドすると、ボタンの代わりにそれがツールバーに表示されます。
モジュールプロジェクトの設定
モジュールの開発時には、プロジェクトの構成が正しく設定されていることを確認する必要があります。NetBeans IDE には、モジュールに必要なすべての基本ファイルを設定するための「モジュールプロジェクト」ウィザードが用意されています。
- 「ファイル」>「新規プロジェクト」(Ctrl-Shift-N) を選択します。「カテゴリ」で「NetBeans モジュール」を選択します。「プロジェクト」で「モジュール」を選択します。「次へ」をクリックします。
- 「名前と場所」パネルで、「プロジェクト名」フィールドに「GoogleToolbar」と入力します。「プロジェクトの場所」を使用コンピュータ上の任意のフォルダに変更します。「スタンドアロンモジュール」オプションはそのままにし、「主プロジェクトとして設定」チェックボックスを選択します。「次へ」をクリックします。
- 「基本モジュール構成」パネルで、「コード名ベース」の yourorghere を myorg に置き換え、コード名ベースを org.myorg.myfirstmodule にします。
- ローカライズ版バンドルと XML レイヤーファイル両方の場所を指定します。これらは、org/myorg/googletoolbar という名前のパッケージに格納されます。たとえば、「XML レイヤー」フィールドに「org/myorg/googletoolbar/layer.xml」を設定します。「完了」をクリックします。
IDE が GoogleToolbar プロジェクトを作成します。このプロジェクトには、ソースや、プロジェクトの Ant 構築スクリプトなどのプロジェクトメタデータがすべて含まれます。IDE でプロジェクトが開きます。「プロジェクト」ウィンドウ (Ctrl-1) で、プロジェクトの論理構造を表示できます。また、「ファイル」ウィンドウ (Ctrl-2) で、プロジェクトのファイル構造を表示できます。
モジュールのコーディング
モジュールをコーディングするには、次の手順を完了する必要があります。
アクションの作成
- プロジェクトノードを右クリックし、「新規」>「アクション」を選択します。「アクション」が表示されない場合は、「その他」を選択し、「新規ファイル」ウィザードの「カテゴリ」で「NetBeans モジュールの開発」を選択します。「次へ」をクリックします。
- 「アクションの種類」パネルはデフォルト設定のままにします。IDE は、次に示すような CallableSystemAction のサブクラスのアクションを作成します。
「次へ」をクリックします。
- 「GUI の登録」パネルで、「カテゴリ」ドロップダウンリストから「編集」を選択します。「カテゴリ」ドロップダウンリストは、IDE のキーボードショートカットエディタでアクションが表示される場所を制御します。次に、「大域メニュー項目」を選択解除し、「大域ツールバーボタン」を選択します。次に示すように、「ツールバー」ドロップダウンリストで「編集」を選択し、「位置」ドロップダウンリストで「検索...ここに置く」を選択します。
「次へ」をクリックします。
「名前と場所」パネルで、「クラス名」に「GoogleAction」と入力し、「表示名」に「Google Action」と入力します。16x16 ピクセル寸法のアイコンを参照します。実際は、アイコンは使用せず、その代わりに次の節で作成する JPanel フォームを表示します。ただし、「新規アクション」ウィザードではアイコンの指定を求められます。実際に使用しないので、どの寸法のアイコンでもかまいません。「完了」をクリックします。
注: 「プロジェクト」ウィンドウの org.myorg.googletoolbar パッケージに GoogleAction.java が追加されます。
JPanel の作成
- プロジェクトノードを右クリックし、「新規」>「その他」を選択します。「カテゴリ」で「Java GUI フォーム」を選択します。「プロジェクト」で「JPanel フォーム」を選択します。「次へ」をクリックします。
- 「名前と場所」パネルで、「クラス名」に「GooglePanel」と入力し、ドロップダウンリストからパッケージを選択します。「完了」をクリックします。GooglePanel.java がパッケージに追加され、ソースエディタの「デザイン」ビューで開きます。
- JPanel の右下隅にカーソルを置き、JPanel を選択してカーソルをドラッグし、次に示すように、サイズをツールバーの幅と長さに合うように変更します。

- パレット (Ctrl-Shift-8) から、JTextField 項目と JLabel 項目を JPanel に直接ドラッグします。次に、JPanel とほかの 2 つの項目をサイズ変更し、それらがぴったり合うようにします。最後に、JLabel をクリックしてテキストを Google: に変更し、JTextField のデフォルトの文字列を削除します。これで、JPanel は次に示す図のようになっているはずです。

- プロパティーのインスペクタが開いていることを確認します (「ウィンドウ」>「ナビゲート」>「インスペクタ」)。次に、JTextField を右クリックし、「イベント」>「Key」>「keyTyped」を選択します。これによって、次に示すように、ソースエディタに表示される GooglePanel.java ソースコードに jTextField1KeyTyped() メソッドが生成されます。

- ソースエディタの GooglePanel.java の「ソース」表示で、jTextField1KeyTyped() メソッドに、次のように入力 (太字で表示されたテキストを挿入) します。
private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
int i = evt.getKeyChar();
if (i==10){//ENTER キー
// Google URL を表示
try{
URLDisplayer.getDefault().showURL
(new URL("http://www.google.com/search?hl=en&q="+jTextField1.getText()+"&btnG=Google+Search"));
} catch (Exception eee){
return;//何もしない
}
}
}
必要がある場合は、ソースエディタを右クリックし、「整形」(Alt-Shift-F) を選択します。
エラーの解決
赤いアンダーラインの付いた数行のコードは、エラーがあることを示します。これは、必要なパッケージがまだインポートされていないためです。URLDisplayer の赤いラインのすぐ左の列に表示された電球アイコンの上に、カーソルを置きます。エラーの理由を示すツールチップが表示されます。

これを解決するためには、プロジェクトにアクセス可能な org.openide.awt パッケージに含まれている HtmlBrowser.URLDisplayer クラスを作成する必要があります。これを行うには、次の手順に従います。
- 「プロジェクト」ウィンドウでプロジェクトのノードを右クリックし、「プロパティー」を選択します。表示される「プロジェクトプロパティー」ダイアログで、「カテゴリ」見出しの下の「ライブラリ」を選択します。「モジュールの依存関係」の下の、「追加」ボタンをクリックします。「モジュールの依存関係を追加」ダイアログが表示されます。
- 「モジュールの依存関係を追加」ダイアログの最上部に表示された「フィルタ」テキストボックスに URLDisplayer と入力すると、返されるモジュールの選択肢が絞られ、UI ユーティリティー API のみが表示されます。
「了解」をクリックします。再度「了解」をクリックして「プロジェクトプロパティー」ダイアログを終了します。
- 「ソースエディタ」を右クリックし、「インポートを修正」(Alt-Shift-F) を選択します。「すべてのインポートを修正」ダイアログが表示され、未知のクラスに対する候補のパスが一覧表示されます。
「了解」をクリックします。IDE によって GooglePanel.java に次のインポート文が作成されます。
import java.net.URL;
import org.openide.awt.HtmlBrowser.URLDisplayer;
また、ソースエディタからすべてのエラーがなくなります。
getToolbarPresenter() のオーバーライド
作成した JPanel は、Google ツールバーを表示する実際のコンポーネントであるため、アクションクラスの getToolbarPresenter() メソッドをオーバーライドする必要があります。GoogleAction.java で、次のことを行います。
- クラス宣言下で、次の変数を宣言して設定します。
GooglePanel retValue = new GooglePanel();
- getToolbarPresenter() メソッドが retValue 変数を返すように定義します。
public java.awt.Component getToolbarPresenter() {
return retValue;
}
モジュールのコンパイル、インストール、および使用
NetBeans IDE では、Ant 構築スクリプトを使用して、IDE でモジュールをコンパイル、およびインストールします。構築スクリプトは、前述のモジュールプロジェクトの設定でのモジュールプロジェクトの作成時に作成されます。これで、モジュールのコンパイルおよび IDE への追加の準備ができました。NetBeans IDE の Ant のサポートを使用して、実行できます。
- 「プロジェクト」ウィンドウで GoogleToolbar プロジェクトのノードを右クリックし、「ターゲットプラットフォームでのインストール/再読み込み」を選択します。モジュールが構築され、IDE の新しいインスタンス (つまり、ターゲットプラットフォーム) にインストールされます。デフォルトでは、デフォルトターゲットプラットフォームは、現在使用している IDE のバージョンです。ターゲットプラットフォームが開き、新規モジュールを試すことができます。
- インストールが正しく行われると、モジュールによって IDE の「編集」ツールバーに新しいボタンが追加されます。
注: ツールバーボタンにはアイコンが表示されません。代わりに、前述の JPanel の作成で作成した JPanel が表示されます。

- テキストフィールドに検索文字列を入力します。

- Enter キーを押します。IDE のデフォルトブラウザが起動します。Google URL と検索文字列がブラウザに送信され、検索が実行されます。検索結果が返されると、その結果をブラウザで見ることができます。
モジュールの共有
これで IDE を拡張する作業モジュールが構築できました。これをほかの開発者と共有してみましょう。NetBeans IDE には、バイナリ NetBeans Module ファイル (.nbm) を作成するための簡単な方法があります。これは、IDE の独自のバージョンでの実験を他者に許可する汎用的な手段で、具体的には、前述のサンプルのインストールで行なったことです。モジュールバイナリを作成するには、次の手順に従います。
「プロジェクト」ウィンドウで
GoogleToolbar プロジェクトのノードを右クリックし、「NBM を作成」を選択します。新規 NBM ファイルが作成され、「ファイル」ウィンドウ (Ctrl-2) で確認できます。
関連項目
これで NetBeans プラグインクイックスタートを終了します。このドキュメントでは、IDE に Google 検索ツールバーを追加するプラグインの作成方法について説明しました。プラグインの作成と開発の詳細については、次のリソースを参照してください。