• ベストアンサー

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 個 とエラーが表示されます。 なぜエラーになるのでしょうか。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • zionic
  • ベストアンサー率39% (31/79)
回答No.3

main()メソッドで定義しているdaという変数ですが、変数を定義しているけど、オブジェクトを生成していないので、中身が空(null)です。 中身がないモノを使ってcl(ColorListener)を生成して、dcsmのリスナーに設定。その後、dscmを使ってjccを生成し、jcc.setColor()メソッドを呼んでますが、この時にColorListenerクラスstateChanged()も呼ばれてます。 ところが、ColorListenerのdrawApplicationという変数は、オブジェクトを生成するときに引数で指定されたdaをコピーしてるので空(null)です。なのに、jColorChooser.getColor()というメソッドが呼ぼうとしたため、NullPointerExceptionが発生しています。

takau710
質問者

お礼

回答ありがとうございました。解決しました。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

多分 ChangeListener というインターフェースが見えていないんじゃないかな. このインターフェースはパッケージ javax.swing.event 中にあるはずなので, 最初の import がおかしかったりしませんか?

takau710
質問者

補足

ご回答ありがとうございます。 言われたとおり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)
回答No.1

掲出のURL(のプログラム)見ていませんが、java:93、java:134を検索してみましたか?(キャッシュで見ると「黄色」わかりやすいです)例えば後者はサイズが大きすぎるとか。

関連するQ&A