FaqFormCustomComponentTroublesJa

パレットにコンポーネントをインストールしましたが使用時にエラーが出ます

注意: まず最初に 「Swing コンポーネントのカスタムサブクラスを使うにはどうしたらよいですか? パレットにインストールする必要がありますか?」 を読んでパレットにコンポーネントをインストールする方法を理解して下さい。

パレットからカスタムパレットコンポーネントをフォームに追加するときに正しく動かない理由はいくつかあります。

1. コンポーネントクラスを読み込むことができません というエラーメッセージが表示され、クラスパスについて問題が出ている。この場合はコンポーネントがどこから読み込まれるのか確認して下さい。

  • コンポーネントが JAR ファイルからインストールされた場合は JAR の場所を確認して下さい。これはライブラリの追加と同じ方法です。
  • コンポーネントが他の JAR を必要としていないか確認して下さい。この場合は複数の JAR を一つのユニットとして定義できるライブラリを使う必要があります。ツールメニューのライブラリマネージャーを使って下さい。ライブラリから再度パレットに追加する必要があります。
  • プロジェクトからインストールされた場合はにはそのコンポーネントがコンパイルされているかどうか確認して下さい。プロジェクト全体がコンパイルされている必要があります。「生成物を削除して構築」を選択して下さい。構築済みの古い JAR には必要なコンポーネントが含まれていない場合がよくあります。
  • コンポーネントのソースがある場合には「パッケージの定義」が正しいか確認して下さい。これは JAR ファイル内に位置するディレクトリと対応しています。
  • コンポーネントの JAR で利用可能な JavaBeans を manifest.mf ファイルに追加している場合は、JAR 内でのコンポーネントのクラスに完全パスを指定しているか確認して下さい。クラス名だけでは動作しません。もし間違いがあればパレットから一度削除し、修正した JAR を使って追加し直して下さい。

2. コンポーネントがインスタンス化できません というエラーメッセージが表示された場合にはそれが JavaBean である確認して下さい。クラスがある場合でもインスタンスが作成できない場合があります。

  • コンポーネントが JavaBean であるかどうか確認して下さい。クラスは抽象クラスにはできません。パブリックである必要があります。また引数なしのパブリックコンストラクタを持つ必要があり、コンストラクタが失敗(例外)してはいけません。
  • コンポーネントに BeanInfo を提供しているのであれば BeanInfo が最新のものであるか確認して下さい。(例えば存在しない参照メソッドがある)
  • またコンポーネントが構築されいる間にコンポーネントが何をしているかチェックしてください。利用できないリソース(アイコンなど)を参照してる場合、また通常の開発環境では存在するが実際の環境では存在しないものに依存している場合、NullPointerExceptionが発生します。

このような失敗があった場合は NetBeans ログファイルを参照する ことで正確なスタックトレースを見つけることができます。最後のスタックトレースの行ではカスタムコンポーネントを含んでいるかもしれません。ログファイルは ユーザーディレクトリ /var/log/messages.log にあります。


  バージョン: NetBeans 5.0, 5.5
  プラットフォーム: すべて

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo