我编了个小程序,在窗口上点击鼠标就画一个圈,结果点击没用啊,高手帮一下吧,

importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassTest_paint{pub... import java .awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test_paint
{
public static void main(String[] args)
{
new Test_pain("主窗口");

}

}
class Test_pain extends JFrame
{
int x,y;
public Test_pain(String s)
{
super(s);
setVisible(true);
setBounds(200,200,400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseListener(new Monito());

}
public void paint(Graphics g)
{
Color c=g.getColor();
g.setColor(Color.yellow);
g.fillOval(x,y,20,10);

}

class Monito extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
Test_paint t=(Test_paint)e.getSource();
int x= e.getX();
int y=e.getY();
System.out.println(x);
repaint();

}
}
}
展开
 我来答
紫薇参星
科技发烧友

2012-05-21 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3590万
展开全部
我看了你的程序,给你改了三处:(见注释)
完整的程序如下:
import java .awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test_paint
{
public static void main(String[] args)
{
new Test_pain("主窗口");
}
}
class Test_pain extends JFrame
{
int x,y;
public Test_pain(String s)
{
super(s);
setVisible(true);
setBounds(200,200,400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseListener(new Monito());

}
public void paint(Graphics g)
{
Color c=g.getColor();
g.setColor(Color.yellow);
g.fillOval(x,y,20,10);
}
class Monito extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
//Test_paint t=(Test_paint)e.getSource(); //这里注释掉一句
x= e.getX(); //这里int x=e.getX();改成 x=e.getX();
y=e.getY(); //这里int y=e.getY();改成 y=e.getY();
System.out.println(x);
repaint();
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式