各位大虾,我将一个JPG图片显示到一个放到FRAME框架的PANEL面扳上。我希望当鼠标在图片上移动时,在图片旁边的文本框显示鼠标的坐标。我知道直接取鼠标坐标的方法(如下),但是当PANEL面扳中有图片时,就不知如何取了,请各位大虾指点一二!import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class myJF extends JFrame
{
JTextField jtfX;
JTextField jtfY;public myJF(String title)
{
super("title");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c=this.getContentPane();
c.setLayout(new FlowLayout(FlowLayout.CENTER));jtfX=new JTextField(7);
jtfY=new JTextField(7);c.add(jtfX);
c.add(jtfY);myMMA mma=new myMMA();
this.addMouseMotionListener(mma);
myMA ma=new myMA();
this.addMouseListener(ma);
}class myMMA extends MouseMotionAdapter
{
public void mouseMoved(MouseEvent e)
{
jtfX.setText(String.valueOf(e.getX()));
jtfY.setText(String.valueOf(e.getY()));
}
}class myMA extends MouseAdapter
{
public void mouseExited(MouseEvent e)
{
jtfX.setText("");
jtfY.setText("");
}
}
}
public class start
{
public static void main(String[] args)
{
myJF.setDefaultLookAndFeelDecorated(true);
myJF tmp=new myJF("测试");
tmp.setSize(500,400);
tmp.setBackground(Color.darkGray);
tmp.setVisible(true);}
}

解决方案 »

  1.   

    不需要特别处理, 一样可以显示坐标, 不会因为JFrame上有无图片而不同.
      

  2.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;class MouseImage extends JFrame {
    JTextField jtfX; JTextField jtfY;
    Image image; public MouseImage(String title) {
    super("title");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container c = this.getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.CENTER));
    image = this.getToolkit().getImage("D:\\Picture\\IMG_0156.JPG");
    jtfX = new JTextField(7);
    jtfY = new JTextField(7); c.add(jtfX);
    c.add(jtfY); myMMA mma = new myMMA();
    this.addMouseMotionListener(mma);
    myMA ma = new myMA();
    this.addMouseListener(ma);
    }

    public void paint(Graphics g) {
    g.drawImage(image, 0, 0, this);
    } class myMMA extends MouseMotionAdapter {
    public void mouseMoved(MouseEvent e) {
    jtfX.setText(String.valueOf(e.getX()));
    jtfY.setText(String.valueOf(e.getY()));
    }
    } class myMA extends MouseAdapter {
    public void mouseExited(MouseEvent e) {
    jtfX.setText("");
    jtfY.setText("");
    }
    }
    }
    import java.awt.Color;
    import java.awt.Image;public class start {
    public static void main(String[] args) {
    // MouseImage.setDefaultLookAndFeelDecorated(true);
    MouseImage tmp = new MouseImage("测试");
    tmp.setSize(500, 400);
    tmp.setBackground(Color.darkGray);

    tmp.setVisible(true); }
    }
      

  3.   

    如果是你的JFrame上面增加的鼠标监听,那么放了图片和没有放图片是一样的