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();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值