- ベストアンサー
javaのコンパイルエラーが解決できません。
http://plaza.rakuten.co.jp/kakuekiteisha5/のプログラムをコンパイルしようとすると、 DrawMainColorChangable.java:93: ここにインタフェースが必要です。 class ColorListener implements ChangeListener{ ^ DrawMainColorChangable.java:134: addChangeListener(javax.swing.event.ChangeListe ner) (javax.swing.colorchooser.ColorSelectionModel 内) を (ColorListener) に適用 できません csm.addChangeListener(cl); ^ エラー 2 個 とエラーが表示されます。 なぜエラーになるのでしょうか。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
main()メソッドで定義しているdaという変数ですが、変数を定義しているけど、オブジェクトを生成していないので、中身が空(null)です。 中身がないモノを使ってcl(ColorListener)を生成して、dcsmのリスナーに設定。その後、dscmを使ってjccを生成し、jcc.setColor()メソッドを呼んでますが、この時にColorListenerクラスstateChanged()も呼ばれてます。 ところが、ColorListenerのdrawApplicationという変数は、オブジェクトを生成するときに引数で指定されたdaをコピーしてるので空(null)です。なのに、jColorChooser.getColor()というメソッドが呼ぼうとしたため、NullPointerExceptionが発生しています。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
多分 ChangeListener というインターフェースが見えていないんじゃないかな. このインターフェースはパッケージ javax.swing.event 中にあるはずなので, 最初の import がおかしかったりしませんか?
補足
ご回答ありがとうございます。 言われたとおりimportのところを少し直して http://plaza.rakuten.co.jp/kakuekiteisha5/にあるようにしました。 これだと、コンパイルは通りましたが、 実行すると、 Exception in thread "main" java.lang.NullPointerException at ColorListener.stateChanged(DrawMainColorChangable.java:99) at javax.swing.colorchooser.DefaultColorSelectionModel.fireStateChanged( Unknown Source) at javax.swing.colorchooser.DefaultColorSelectionModel.setSelectedColor( Unknown Source) at javax.swing.JColorChooser.setColor(Unknown Source) at DrawMainColorChangable.main(DrawMainColorChangable.java:136) と例外が出ます。 原因が全く分からないのでどなたかよろしくお願いします。
- goold-man
- ベストアンサー率37% (8364/22179)
掲出のURL(のプログラム)見ていませんが、java:93、java:134を検索してみましたか?(キャッシュで見ると「黄色」わかりやすいです)例えば後者はサイズが大きすぎるとか。
お礼
回答ありがとうございました。解決しました。