みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

javaの画像の表示のプログラムとmouselistenerのプログラ

javaの画像の表示のプログラムとmouselistenerのプログラム(それぞれ↓にあります)をひとつに合わせたいのですがどうすればいいでしょうか?
import java.awt.event.*;
import javax.swing.*;

class MyPanel extends JPanel
implements MouseListener{

public MyPanel() {
addMouseListener(this);

}

public void mouseClicked(MouseEvent e) {
int x=e.getX();
int y=e.getY();
System.out.println("マウスがクリックされました (" + e.getX() + ", " + e.getY() + ")");
if((x<100&&x>40)&&(y<100&&y>40)){
System.out.println("範囲内");

}else{
System.out.println("aaa");
}

}

public void mouseEntered(MouseEvent e) {
}

public void mouseExited(MouseEvent e) {
}

public void mousePressed(MouseEvent e) {
}

public void mouseReleased(MouseEvent e) {
}
}

public class MouseEventExample extends JFrame {
public static void main(String[] args) {
new MouseEventExample();
}

MouseEventExample() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(new MyPanel());
setSize(300, 200);
setVisible(true);
}
}
======↑のプログラムと↓のプログラムを合わせたいのです
package novel;

import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import java.io.IOException;

public class Java2dTest extends JFrame{
public static void main(String[] args){
Java2dTest test = new Java2dTest();

test.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){System.exit(0);}
});

test.setBounds( 0, 0, 200, 200);
test.setVisible(true);
}

public void paint(Graphics g){
Graphics2D g2 = (Graphics2D)g;

BufferedImage readImage = null;
try {
readImage = ImageIO.read(new File("sample.png"));
} catch (Exception e) {
e.printStackTrace();
readImage = null;
}

if (readImage != null){
g2.drawImage(readImage, 0, 0, this);
}
}
}

投稿日時 - 2010-09-07 13:57:05

QNo.6165145

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

もしJPanelを使う必要がないのであれば、Java2dTestのmain()内の適切な場所に下記のコードを書き足すだけです。

test.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
System.out.println("マウスがクリックされました (" + e.getX() + ", " + e.getY() + ")");
if ((x < 100 && x > 40) && (y < 100 && y > 40)) {
System.out.println("範囲内");
} else {
System.out.println("aaa");
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
});

投稿日時 - 2010-09-08 23:48:10

お礼

できました!
どうもありがとうございます!

投稿日時 - 2010-09-09 17:58:03

あなたにオススメの質問