首页 > 解决方案 > 坐标不会消失

问题描述

这是使用 JPanel 在 JFrame 上显示鼠标按下事件的坐标的分配。除了新坐标出现时旧坐标必须消失之外,我已经满足了所有要求。我确定我在这里的某个地方遗漏了一个概念,但是经过数小时的阅读和反复试验,我无法让它们消失。有人可以指出我正确的方向吗?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class Coords{
    public static void main(String[] args){
        new Runner();
    }
}

class Runner{
    public Runner(){
                         
        MyFrame displayWindow = new MyFrame();
        displayWindow.setSize(300,100);     
        displayWindow.setVisible(true);   
        Panel panel = new Panel();
        displayWindow.getContentPane().add(panel, "Center");
        displayWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
    }
}

class MyFrame extends JFrame{
        
    public MyFrame(){
        
        System.out.println(
          "Some text on command line");          
    }    
}

class Panel extends JPanel{
    int xCoor;
    int yCoor;
    
    public Panel(){
        this.addMouseListener(new MouseProc());  
    }
    
    public void paint(Graphics g){    
        g.drawString("x = " + xCoor + ", y = " + yCoor, xCoor, yCoor);
    }
}

class MouseProc extends MouseAdapter{
    public void mousePressed(MouseEvent e){
        ((Panel)e.getComponent()).xCoor = e.getX();
        ((Panel)e.getSource()).yCoor = e.getY();
        e.getComponent().repaint();
    }
}

谢谢你的时间!

标签: javaswing

解决方案


推荐阅读