クリックしても反応しません。
また、マウスイベントが発生したときに飛ぶメソッドにSystem.out.printlnを入れるとException in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pDataが出ることがあります。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class NewJApplet extends javax.swing.JApplet implements MouseListener{
int x = 10;
int y = 10;
public void init()
{
x = 50;
y = 50;
}
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed( MouseEvent e ){
x = e.getX();// マウスがクリックされた位置のx座標を取得する
y = e.getY();// マウスがクリックされた位置のy座標を取得する
repaint();// アプレットの再描画を指示する
}
public void mouseReleased(MouseEvent e)
{
}
public void paint(Graphics g) {
g.fillOval(x,y,10,10);
}
}
使ってるのは
jre1.6.0_01
NetBeans 5.5です
No.3ベストアンサー
- 回答日時:
ソース
--------------------------------------------------------------------------
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class NewJApplet extends javax.swing.JApplet implements MouseListener{
int x = 10;
int y = 10;
public void init()
{
x = 50;
y = 50;
//自分のマウスイベントに反応するよう登録
this.addMouseListener(this);
//実際に見える背景を白色に設定(無くても問題ありません)
this.getContentPane().setBackground(Color.WHITE);
}
public void mouseClicked(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mousePressed( MouseEvent e ){
x = e.getX(); // マウスがクリックされた位置のx座標を取得する
y = e.getY(); // マウスがクリックされた位置のy座標を取得する
repaint(); // アプレットの再描画を指示する
}
public void mouseReleased(MouseEvent e){
}
public void paint(Graphics g) {
//元々の処理を親にお願いします。
super.paint(g);
g.fillOval(x,y,10,10);
}
}
--------------------------------------------------------------------------
イベントについて
イベントでは、2つの処理で構成されています。
イベントを受信して告知するクラス(発行役)と、
報告を受けたら作業をするクラス(受取役)です。
その1
●JApplet内でマウスのイベント処理をしたい場合
元々、JAppletは、マウスのイベント告知をする機能(発行役)を持っています。
でも、作業する機能(受取役)は無いので、受取役のMouseListenerをくっつけます。
これより、mousePressed()などのメソッドが、出来ます。
でも、これで完成ではありません。
発行役に受取役を設定する必要があります。
this.addMouseListener(this);
この場合、発行も受取も同じJAppletなのでこのようになります。
this.addMouseListener(button);
this.addMouseListener(label);
などと、別のクラスを追加する事も可能です。
JAppletでマウスが動いた際に、
登録しているボタンやラベルのクラス内のmousePressedで処理を行う事ができます。
大切なのは、イベントを登録する事です。
その2
元々paint()メソッドは、パネル全体を描画しますが、
g.fillOval(x,y,10,10);の処理の為、paintメソッドを書き直した状態になります。
その為、親で行っていた、再描画をしてくれなくなりました。
親にお願いする必要があります。
super.paint(g);
無い場合は、点が残ります。
No.2
- 回答日時:
NullPointerExceptionの件はどうも未だに修正されていないJREのバグのようです。
バグの内容としては「×」をクリックしてウインドウを閉じようとした際に発生する旨が記載されていますが、事象としては違いますか?
おそらく原因は同じだと思うのですが・・・
参考URL:http://bugs.sun.com/bugdatabase/view_bug.do?bug_ …
No.1
- 回答日時:
このアプレットでマウスのイベントを拾いたい場合
アプレットに対してaddMouseListenerメソッドを呼び出し、
どのマウスリスナーを使用するのか決定する必要があります。
実装方法は参考URLをご覧ください。
エラーの件はちょっとこれだけだとわかりません。
>マウスイベントが発生したときに飛ぶメソッド
具体的にどのメソッドでどういったロジックになっているか記載頂ければ何かわかるかもしれません。
参考URL:http://wisdom.sakura.ne.jp/system/java/awt/Gjava …
public void init(){
addMouseListener(this);
}
これが足りなかったんですね。ありがとうございます。
イベントはmouseEnteredやmouseExitedなど全部で起きてると思ったんですが。どうもSystem.out.printlnは関係ないようです。
起こりにくいので謎です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Java Java 配列<選挙> 4 2023/07/31 15:07
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
StrutsのiterateタグでListに格...
-
C# WinForm のDataGridView Cel...
-
C#で、あるクラスのメンバーす...
-
Processingでマウスクリックで...
-
Junitテストでvoid戻り値メッソ...
-
LVM_SETITEMSTATEでListViewの...
-
決められて時間が経過するとア...
-
Thread.sleepのInterruptedExce...
-
C#で別のFormへ複数の値を返そ...
-
java アプリケーションをjava ...
-
Runtime#proccessのwait
-
C# DataGridView列カスタマイズ
-
C# visibleプロパティをfalseに...
-
javaアプレット repaintのタイ...
-
C#でキーイベントが発生しない...
-
C# MouseHoverを何度も呼ぶには
-
MouseEventのつけ方
-
JScrollPaneで、表示がおかしく...
-
変数を動的に利用するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
C# 矢印キーの取得
-
ボタンの複数割り当てについて
-
C# DataGridView列カスタマイズ
-
コンボボックスを使う時の警告
-
ユーザーコントロールを動的に...
-
アプレットでマウスイベントが...
-
C#で別のFormへ複数の値を返そ...
-
LVM_SETITEMSTATEでListViewの...
-
C#,listBoxのItem追加について...
-
C# MouseHoverを何度も呼ぶには
-
C# visibleプロパティをfalseに...
-
C# 親フォームで指定した値を...
-
C# 半角カナの文字化けについて
-
決められて時間が経過するとア...
-
javaを用いて,a列,b列の空白...
-
Processingでマウスクリックで...
おすすめ情報