【java创建能够画直线的窗口界面】

//一、创建一个界面;

        先写一个DrawUI类.(自己可随意命名,但下面要一致)

        设置窗体的:标题 尺寸 关闭功能  可视化

//创建一个类DrawUI
public class DrawUI{    
    
    //绘制界面的方法(即这个类里面的方法)(成员方法)
    public void initUI(){
    
    //新建一个界面对象
    JFrame jf = new JFrame("图形图像");

    //设置界面大小
    jf.setSize(1000,800);   
    
    //设置关闭页面时的操作 
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //注意是用JFrame来调用退出方法

    //将页面可视化(一般在设置好界面之后)
    jf.setVisible(true);
    }
}


//二、再加上鼠标监听;

1、MouseListener:监听在鼠标上的操作;

2、用Ctrl+鼠标左键可查看有五种操作方法:点击,按下,释放,进入,离开

3、使用鼠标监听器的方法:

        3.1 创建一个类DrawListener,用implement实现 MouseListener 的功能     

public class DrawListener implements MouseListener{}

        3.2 复制并重写五种操作方法,在每一个方法加入输出语句查看效果(System.out.println("   "))

        3.3 点击 方法里,用对象e来获取x,y坐标

        3.4 按下 方法里,获取x1,y1 的坐标;

        3.5 释放 方法里,获取x2,y2的坐标;

        3.6 进入和离开 方法里,现只加入输出语句查看效果;

        3.7 MouseEvent 用于获取对象;

public class DrawListener implements MouseListener{
	
    int x1,y1,x2,y2;
	java.awt.Graphics g= null;    //在设置之前将对象设置为空

	
	public void mouseClicked(MouseEvent e) {
		int x = e.getX();
		int y = e.getY();
		System.out.println("mouseClicked" + x+"   "+y);
	}

  
    public void mousePressed(MouseEvent e) {
    	x1 = e.getX();
		y1 = e.getY();
    	System.out.println("mousePressed" + x1 +"   "+y1);
	}

   
    public void mouseReleased(MouseEvent e) {
    	x2 = e.getX();
		y2 = e.getY();
    	g.drawLine(x1,y1,x2,y2);
    	System.out.println("mouseReleased" + x2+"   "+y2);
    }

   
    public void mouseEntered(MouseEvent e) {
    	System.out.println("mouseEntered");
    }

   
    public void mouseExited(MouseEvent e) {
    	System.out.println("mouseExited");
    }
	
}

运行后弹出窗口界面,点击鼠标左键,获取此处坐标,拖动鼠标,在另一点放开获得坐标,即可画出一条直线。

4、Graphics 实现在屏幕上绘制的功能

dl.g = getGraphics ();     // x1, y1, x2, y2 按下释放的坐标 
// 在释放时执行下面这行代码 
g.drawLine (x1, y1, x2, y2);
   //添加鼠标监听器:
    DrawListener dl = new DrawListener();

    //添加监听对象 dl;
    jd.addMouseListener(dl);

    //必须在可视化之后获取;
    Graphics g= jf.getGraphics();
    
    //传递给监听对象
    dl.g = g;


//三、创建监听对象,获取鼠标操作的坐标;

    Graphics g= jf.getGraphics();

必须在可视化之后获取;


//四、传递画笔给监听器绘制直线;

    dl.g=g;

//五、主方法部分

public class DrawUI{ 
    public static void main(String[] arg){        //主方法部分,绘制界面
    DrawUI drawUI = new DrawUI();
    drawUI.initUI();
    }
}

PS:

//1、导入文件放在头上,用到相应方法时不要忘记加:


import java.awt.Graphics;
import javax.swing.JFrame;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

//2、退出方法有四种     
DO_NOTHING_ON_CLOSE   退出时什么也不做。 点×时没反应,关闭不了界面; 
HIDE_ON_CLOSE                  退出时界面消失,但后台还在运行;
DISPOSE_ON_CLOSE          关闭时进行销毁操作,需要一段时间才会结束后台;
EXIT_ON_CLOSE                  关闭时全部关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值