总结:通过匿名类来实现鼠标的监听或者 通过实现接口的方法都可以的
从此是实现MouseListener接口的方式
package com.a.b; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Paint; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Random; ///练习监听的 import javax.swing.*;// //实现鼠标双击时画圆,运用画图 class Shape extends JFrame implements MouseListener { //设置图形的坐标 int x,y; public Shape(){ JLabel jl=new JLabel("你是我的信仰"); jl.setForeground(Color.yellow); JLabel jl2=new JLabel("你是冬天里的太阳"); jl2.setForeground(Color.red); JPanel jp=new JPanel(); //看到冒这些字体什么都没显示在fraem jp.add(jl2); jp.add(jl); jp.setBackground(Color.green);//设置frame的背景色 this.add(jp); this.setBounds(100, 200, 500, 500); this.setDefaultCloseOperation(3); //ini(); this.setVisible(true); this.addMouseListener(this);//要想实现鼠标事件,必须先要注册事件侦听器,然后调用接口里的MouseClicked方法 } Random r=new Random(); public void paint(Graphics g) {//////////我终于明白了,这个画图的方法不是普通的方法,是自带的,小写的才可以被自动调用 g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255)));//否则是根本画不出来图形 //画圆。长方形,椭圆。直线。实心圆 g.fillOval(x, y, 44, 44);//实心圆 g.drawOval(x, y-32, 32, 32);//空心圆 //g.drawRect( x, y-22, 55,55); g.drawLine(x, y, 44, 44);//这是一条直线 g.drawString("hello world!!!", 300, 300); } @Override public void mouseClicked(MouseEvent e) { if(e.getClickCount()>=3){ x=e.getX(); y=e.getY(); repaint(); } } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } } public class Tuxing { public static void main(String[] args) { new Shape(); } }