/* 7.编写Java程序,创建一个窗体,并实现交互。
*在窗体内“单击鼠标左键”,在光标处绘制一个“红色圆”;
*窗体内“单击鼠标右键”,在光标处绘制一个“绿色方框”;
*窗体内“双击鼠标左键”,清空所有已画“圆”和“方”。
*/
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class CircleSquare extends JFrame {
myPanel mp=new myPanel();
CircleSquare (){
this.setBounds(100,100,200,200);
this.setTitle("左键画圆,右键画方");
this.add(mp);
this.getContentPane().addMouseListener(new draw());
}
public static void main(String[] args) {
CircleSquare frm=new CircleSquare ();
frm.setVisible(true);
}
class myPanel extends JPanel{
int a=0;//判断鼠标点击状态
int x,y;//判断位置
public void paint(Graphics g){
if(a==1){
g.setColor(Color.RED);//点击左键,画红色圆
g.fillOval(x,y,10,10);
}
else if(a==2){//双击清除
g.setColor(Color.WHITE);
super.paint(g);
}
else if(a==3){//单机右键,画方框
g.setColor(Color.GREEN);
g.drawRect(x,y,10,10);
}
}
}
class draw extends MouseAdapter{
public void mouseClicked(MouseEvent e){
final myPanel mp=(myPanel)e.getSource();
mp.x=e.getX();
mp.y=e.getY();
if(e.getButton()==e.BUTTON1){//单击左键
mp.a=1;
if(e.getClickCount() == 2){//双击
mp.a=2;
}
mp.repaint();
}
else if(e.getButton()==e.BUTTON3){//单击右键
mp.a=3;
mp.repaint();
}
}
}
}
这个运行出来只是一个窗体,鼠标点击毫无反应,想知道哪里出问题了,我是四处搜集资料写的这个程序, 什么都不懂,感觉是不是监听器没有发挥作用啊