java代码实现鼠标双击出现画图-----------paint()方法由系统自动调用,且一定是小写的字母p

总结:在运行过程中,自己不是很认真,没有检查自己写的代码,结果是无论你怎么运行,双击

frame都没用,因为系统根本就没有调用paint()方法绘图。所以很重要的是实现这个方法

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 {
	
		//设置图形的坐标
	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);
		
	}
	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);
	}


	
	
	public void ini(){
		this.setBackground(Color.yellow);//
		this.addMouseListener(new MouseListener (){
			//这里使用匿名的内部类来实现对frame的监听动作
			
			@Override
			public void mouseClicked(MouseEvent e) {
				if(e.getClickCount()>=2){
					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().ini();
}
}

  

原文地址:https://www.cnblogs.com/langlove/p/3479328.html