zoukankan      html  css  js  c++  java
  • 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();
    }
    }
    

      

  • 相关阅读:
    Unity之串口通信(基于三姿态传感器)
    Unity3d win7协议多点触控
    大大的蛋项目 第二篇 第三关
    大大的蛋项目
    Unity3d 调用C++的DLL
    有梦想的小鸟
    【Unity3D插件】NGUI屏幕自适应 .
    【Unity3d】使GUI适应屏幕分辨率
    unity自动保存项目
    BloomFilter——大规模数据处理利器
  • 原文地址:https://www.cnblogs.com/langlove/p/3479328.html
Copyright © 2011-2022 走看看