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 個
とエラーが表示されます。
なぜエラーになるのでしょうか。よろしくお願いします。
No.1
- 回答日時:
掲出のURL(のプログラム)見ていませんが、java:93、java:134を検索してみましたか?(キャッシュで見ると「黄色」わかりやすいです)例えば後者はサイズが大きすぎるとか。
No.2
- 回答日時:
多分 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)
と例外が出ます。
原因が全く分からないのでどなたかよろしくお願いします。
No.3ベストアンサー
- 回答日時:
main()メソッドで定義しているdaという変数ですが、変数を定義しているけど、オブジェクトを生成していないので、中身が空(null)です。
中身がないモノを使ってcl(ColorListener)を生成して、dcsmのリスナーに設定。その後、dscmを使ってjccを生成し、jcc.setColor()メソッドを呼んでますが、この時にColorListenerクラスstateChanged()も呼ばれてます。
ところが、ColorListenerのdrawApplicationという変数は、オブジェクトを生成するときに引数で指定されたdaをコピーしてるので空(null)です。なのに、jColorChooser.getColor()というメソッドが呼ぼうとしたため、NullPointerExceptionが発生しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
- Windows 10 Windows Updateの更新ができない場合に初期化 3 2023/01/18 20:00
- C言語・C++・C# プログラム Arduino 1 2022/07/03 11:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
ファイルダイアログを開いた時...
-
【JAVA】与えられた金額を貨幣...
-
スタックオーバーフローとは?
-
文字列が数字のみで構成されて...
-
nullで、return出来るのはどん...
-
ADOによるレコードの追加/更新
-
VB.Net Object型 空かどうか
-
Javaで文字列をゼロ埋め(ゼロパ...
-
時間の取得
-
WebClient()以外でネットにアク...
-
WMIスクリプトを使用してMACア...
-
例外ってIf文の中に入れますか...
-
VBA 400エラー 1004エラー
-
文字列からダブルクオートの削除
-
C#の捕捉されない例外処理の対...
-
String型の日付(2005/11/25)の...
-
オーバーライドしたメソッドで...
-
VBA ユーザーフォーム ラベル...
-
0除算の例外処理ができない!!...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
連続する「\\」をひとつの「\\...
-
文字列からダブルクオートの削除
-
VB.Net Object型 空かどうか
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
数字か文字列かを判定する関数
-
例外ってIf文の中に入れますか...
-
C# マルチスレッドにおける例外...
-
スタックオーバーフローとは?
-
String型の日付(2005/11/25)の...
-
Timestamp型への変換について(J...
-
C# UriFormatExceptionの回避
-
VBA Evaluate関数 型が一致しま...
-
ADOによるレコードの追加/更新
-
時間の取得
-
WebClient()以外でネットにアク...
-
C#の捕捉されない例外処理の対...
-
タトゥーや墨を入れる人の共通点
おすすめ情報