`
吃货吃货
  • 浏览: 33031 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

初识java——简单画图板的实现

    博客分类:
  • java
 
阅读更多

  
    在大一的时候,我对敲代码一直有着很深的反感,一直认为敲代码是一件枯燥无味的事情,每天甚至要在电脑面前坐上十多个小时,再加上当时是因为被调剂进的的软件专业,对代码这些东西更加是厌烦,整个大一的时候就感觉时间全部浪费在游戏什么的上面。。。

   还记得大一小学期的时候,学校老师要求我们分组完成图书管理系统,当时脑袋就懵了,毕竟平时只完成过一点很简单的代码,对这些项目什么的完全没有任何想法,每天就看着同宿舍大神欢乐的敲着代码,自己却只能对着编译器发呆,还好最后在大神的帮助下,也算是能蒙混过关了,哈哈哈。

   不过从那时候起,我就感觉到自己和他们的差距了,即使每天都是在同一个教室上课,自己却什么都做不出来,一下子就觉得压力山大。。。虽然这时候我还是觉得敲代码是一件无趣的事情,但我也想这是时候改变一下了,毕竟专业已经没得选了T T。于是在大二之后,在听同学说过后,我便来到了蓝杰学习,同时也开始尝试自己敲代码,虽然说还有很多瑕疵的地方,请大家不要太在意这些细节,毕竟我还是个小新人~

第一个界面的制作:

  

this.setTitle("我的画图板");
this.setSize(800, 600);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
this.setVisible(true);

 

 

一开始做出来的就是这样一个空白的“画图板”,上面什么都没有,然后就想着向上面加按钮、菜单什么的,同时加了按钮也要能使用,于是便想着加按钮加监听器什么的~然后又想在画的时候也将图形显示出来,于是就用了一个MouseMotionListener的监听器显示鼠标拖动时的图形

 

 

		//创建按钮
		JButton jbt_clear=new JButton("清空画布");
		JButton jbt_line=new JButton("直线");
		JButton jbt_oval=new JButton("椭圆");
		JButton jbt_rect=new JButton("矩形");
		JButton jbt_tri=new JButton("三角形");
		JButton jbt_colorchooser=new JButton("编辑颜色");
		//创建一个菜单
		JMenuBar jmb_color=new JMenuBar();
		JMenu jm_color=new JMenu("选择颜色");
		JMenuItem jmi_red=new JMenuItem("红色");
		JMenuItem jmi_yellow=new JMenuItem("黄色");
		JMenuItem jmi_green=new JMenuItem("绿色");

 

 然后又是添加各种监听器:

 

 

		//创建监听器对象
		ShapeListener slis=new ShapeListener();
		ColorListener clis=new ColorListener(g);
		MyMouseListener mlis=new MyMouseListener(q,clis,slis,g);
		MyMouseMotionListener mmlis=new MyMouseMotionListener(g,slis,clis,mlis);
		
		//添加监听器
		//给按钮添加动作监听器
		jbt_clear.addActionListener(slis);
		jbt_line.addActionListener(slis);
		jbt_oval.addActionListener(slis);
		jbt_rect.addActionListener(slis);
		jbt_tri.addActionListener(slis);
		jmi_red.addActionListener(clis);
		jmi_yellow.addActionListener(clis);
		jmi_green.addActionListener(clis);
		jbt_colorchooser.addActionListener(clis);

 

第二个画图板算是实现了电脑上自带的画图板的部分功能,但是这个界面是在是太丑了,感觉自己都无法直视了,于是又开始想着将按钮与画图的地方分为两个不同的面板,利用JPanel在同一个JFrame界面上添加两个不同的面板;再然后又想为画图板添加一个滚动条,利用JScrollPane在下面的界面上添加滚动条:

 

		//在窗体中建立两个面板
		JPanel jp_north=new JPanel();
		JPanel jp_south=new JPanel();

 

 

 

 

		//创建一个可以提供滚动条的面板
		//将jp_south添加在jsp上
		JScrollPane jsp = new JScrollPane(jp_south); 
		//将jsp添加在JFrame上
		this.add(jsp);

 

重绘功能的实现:

   昨天发现忘记加这个重绘的代码了。。。现在补上

        再将画板的界面重新修改了一遍之后,偶然发现将画图板界面缩小之后,上面画的图形便消失不见了,这个时候才知道有重绘这么一回事,就是将JFrame中的重绘方法paint()重写一遍

		//调用父类的paint方法,重绘组件
		
		super.paint(g);
		System.out.println("123");
		for(int i=0;i<q.getSize();i++){
			 q.get(i).draw(g);
			 System.out.println("123");

 

   于是,一个带有滚动条并且能实现部分功能的画图板便在我手上诞生了,虽然依旧是有点丑,不过也还算是我自己第一次认真敲的代码。

   虽然我现在实现的也只是一个很简单的程序,不过对于我来说也是一个很大的进步啦,我第一次知道打代码并不像我想象的那么枯燥,甚至还是一件非常欢乐的事情,加油!!!

  • 大小: 19.2 KB
  • 大小: 24.5 KB
  • 大小: 40.5 KB
3
0
分享到:
评论

相关推荐

    初识JavaScript ———(2)!!!.md

    初识JavaScript ———(2)!!!.md

    初识JavaScript———(1)!!!.md

    初识JavaScript———(1)!!!.md

    01第1章 初识C++——C++程序设计入门

    本章"初识C++——C++程序设计入门"是学习C++之旅的起点,旨在为初学者构建坚实的基础。 首先,C++程序的基本结构通常包括预处理指令、函数定义、变量声明和控制流语句。预处理指令以`#`开头,如`#include`用于引入...

    初识通信——多线程服务器的建立

    本文将详细讲解如何初识通信,并以多线程服务器的构建为例,来阐述相关技术点。 首先,理解多线程的概念至关重要。多线程是指在一个进程中可以同时执行多个线程,这样可以充分利用CPU资源,提高程序的执行效率。在...

    初识PLC——PLC性能.pptx

    值得注意的是,FX1N系列除了可以使用FX0N的所有特殊模块和外围设备外,还提供了扩展板如FX1N-232-BD、FX1N-422-BD和FX1N-485-BD,以及FX1N-8AV-BD和FX1N-5DM模块,进一步增强了通信和控制功能。 在性能指标上,FX0N...

    初识PLC——PLC发展.ppt

    3. 编程简单:使用梯形图等直观语言,现场可修改程序,便于维护。 4. 配套齐全:丰富的I/O模块和其他扩展选项,满足不同需求。 5. 使用寿命长、体积小、能耗低:节省空间,降低运营成本。 6. 设计灵活,易于扩展和...

    初识鲁迅——少年闰土PPT.ppt

    【初识鲁迅与《少年闰土》】 鲁迅,原名周树人,是中国现代文学的巨匠,同时也是著名的思想家、革命家和教育家。他的一生致力于文学创作和社会批判,其作品深具影响力,对中国现代文化的发展产生了深远影响。鲁迅在...

    初识PLC——PLC工作原理.ppt

    一般来说,扫描周期在几毫秒到几百毫秒之间,这使得PLC能够快速响应外部事件并实现实时控制。 ### PLC的应用 PLC广泛应用于各种工业领域,包括但不限于: - **制造业**:在汽车制造、食品饮料加工、制药行业中,...

    初识Java_课后补充作业

    【Java初识篇】 在Java的世界里,初学者往往会面临许多挑战,但“初识Java_课后补充作业”正是为了帮助这些新手们提供必要的学习支持。这份资料旨在加深对Java编程语言的理解,提高学习效率,使初学者能更快地掌握...

    JAVA基础-初识JAVA

    【JAVA基础-初识JAVA】 Java是一种广泛使用的高级编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年推出。它的设计目标是“一次编写,到处运行”,这意味着编写好的Java程序可以在任何支持Java环境的...

    初识单片机—— 十字路口交通灯的.ppt

    这篇文档主要介绍的是初学者如何理解并应用单片机来实现十字路口交通灯的控制。在交通灯控制中,单片机是核心控制器,它负责根据预设的时间序列来切换不同方向的信号灯状态,以确保交通流畅和安全。下面我们将深入...

    初识PLC——认识FXN系列PLC.ppt

    PLC技术

    第01讲 初识Java.ppt

    第01讲 初识Java.ppt

    初识PLC——PLC编程软件的使用.ppt

    PLC技术及应用

    1.初识Java作业-1

    JVM是Java最核心的技术,它是一个虚拟的计算机系统,能够理解并执行字节码,从而实现了Java的跨平台能力。不同平台的JVM可能有所不同,但它们都遵循Java虚拟机规范,提供相同的接口,使得Java程序能够在各种操作系统...

    初识java和main语言(csdn)————程序.pdf

    在初识Java时,首先要了解的是如何设置开发环境。安装Java Development Kit (JDK)是必要的第一步,这将提供编译和运行Java程序所需的基本工具。安装完成后,需要配置环境变量,包括`JAVA_HOME`、`CLASSPATH`和`Path`...

    Java2上机实践1初识java

    在本实践课程“Java2上机实践1初识java”中,我们将深入探索Java编程的基础概念,通过一系列有趣的实例来加深理解。这个压缩包包含了实验1的相关材料,旨在引导我们逐步掌握Java语言的核心特性。 首先,我们要从"猜...

    《初识Java微信公众号开发》源码

    《初识Java微信公众号开发》 http://www.imooc.com/learn/368 附件是整理的源码编译没有错误。 环境说明:tomcat8.5、jdk1.8、dom4j-1.6.1、XStream-1.4.9 程序总是报错“org.xmlpull.v1.XmlPullParserException”,...

Global site tag (gtag.js) - Google Analytics