Day 4 画图板 边框布局

要创建一个画图板,首先要先创建一个界面

创建界面

好的,先让我们再为我回顾一下如何创建界面(敢情是真的没记得多少了)

  • 先打开一个class,命完名后,我习惯性的先写好主函数,再等会儿,将现在写的这个类实例化,再将下面写的界面方法进行调用。
  • 然后,可以开始简单地写下这个界面的方法了。可以直接继承JFrame,也可以对象实例化JFrame,再接着引用里面的方法。
  • 照例简单的给界面命名,设置大小,可关闭,居中显示,此处再添加边框布局,先实例化,再设置大小,颜色,再添加到界面,最后进行可视化。
    • 相关关键词
    • 继承:public class DrawPad extends JFrame{ }
    • 对象实例化:JFrame jf = new JFrame( );
    • 命名:jf.setTitle(“DrawPad”);
    • 设置大小:jf.setSize(900,800);
    • 可关闭:jf.setDefaultCloseOperation(3);
    • 居中显示:jf.setLocationRelativeTo(null);
    • 边框布局:
      JPanel jpc = new JPanel();
      jpc.setPreferredSize(new Dimension(850,700));
      jpc.setBackground(new Color(135,206,250));
      jf.add(jpc1);
    • 可视化:jf.setVisible(true);

创建监听器

  • 再创建一个类,明了名后,在名字后面用 implements 来实现鼠标监听器MouseListener的接口,在这个类里重载鼠标监听器里的方法。方法里有:鼠标点击、按下、释放、进入、离开。
  • 在各种方法上面,先声明下画笔,以便在所有的方法里调用。
  • 先简单画个矩形
    • 在监听器重载的 按下 方法中获取起始点,再在 释放 方法中获取离开点。然后可在 释放 的方法里画矩形了。
    • 将刚刚获取的两点用上,并调用取最小值Math.min()和取绝对值Math.abs来编写矩形。

在界面里添加监听器

在可视化后,在需要绘画的界面中先获取画笔,再实例化刚刚创建的监听器类,在界面中添加监听器,再将界面中的画笔跟监听器中的画笔实现传值,完成监听。然后,矩形就可以画出来了。

简单的代码如下
界面的代码
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class RedrawPad {
	public static void main(String[] args){
		
		RedrawPad ui = new RedrawPad();
		ui.UI_1113();		
	}
	
	public void UI_1113(){
		
		JFrame jf = new JFrame();
		jf.setTitle("my draw");
		jf.setSize(900,800);
		jf.setDefaultCloseOperation(3);
		jf.setLocationRelativeTo(null);
		
		JPanel jpn = new JPanel();
		jpn.setPreferredSize(new Dimension(850,100));
		jpn.setBackground(new Color(152,251,152));
		
		JPanel jpc1 = new JPanel();
		jpc1.setPreferredSize(new Dimension(850,690));
		jpc1.setBackground(new Color(255,250,205));
						
		JPanel jpc2 = new JPanel();
		jpc2.setPreferredSize(new Dimension(800,650));
		jpc2.setBackground(new Color(135,206,250));
				
		jf.add(jpc1);
		jpc1.add(jpn);
		jpc1.add(jpc2);
		
		jf.setVisible(true);
			
		Graphics g = jpc2.getGraphics();
		
		Pad_Listener pl = new Pad_Listener();
		jpc2.addMouseListener(pl);
		pl.gl=g;
					
	}
	
}

监听器类的代码
package com.qjx1113.redrawPad;

import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class Pad_Listener implements MouseListener{
	Graphics gl;
	int x_start,y_start,x_end,y_end;
	
	public void mouseClicked(MouseEvent e) {
		
		
	}

	
	public void mousePressed(MouseEvent e) {
		x_start = e.getX();
		y_start = e.getY();
			
	}

	
	public void mouseReleased(MouseEvent e) {
		x_end = e.getX();
		y_end = e.getY();
		
		gl.drawRect(Math.min(x_start,x_end),Math.min(y_start,y_end),Math.abs(x_start-x_end), Math.abs(y_start-y_end));
		
	}

	
	public void mouseEntered(MouseEvent e) {
	
		
	}

	
	public void mouseExited(MouseEvent e) {
	
		
	}

	
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值