今天对画图板功能进行了增加,具体步骤,及注意事项如下:
1.首先要了解各功能模块是怎样形成的。
画图板大概分为3个模块:功能模块(ToolPanel),颜色模块(ColorPanel),画图面板(DrawPanel)。
将这3个模块在容器中布局用到了边框布局BorderLayout。
this.add(tool_panel,BorderLayout.WEST);
this.add(color_panel,BorderLayout.SOUTH);
this.add(draw_panel,BorderLayout.CENTER);
2.功能模块类(ToolPanel)的创建。
要继承JPanel类
画图板有16个工具,我们只需要创建16个按钮,在对其在面板进行布局就行。
由于按钮比较多,在创建按钮,对按钮进行监听以及在按钮上添加图片等操作时代码比较多且重复。为了优化代码创建了一个String型数组
String[] shapes = {"star","dot_rect","eraser","fill","color_picker",
"magnifier","pencil","brush","airbrush","word","line","curve",
"rect","polygon","oval","round_rect"};
这样我们就只需要通过循环对其进行创建与调用就行。
在添加图片时要注意图片文件的位置,最好把文件和代码放在同一个文件里,便于使用与移植。
ImageIcon image=new ImageIcon("images//"+shapes[i]+".jpg");
button.setIcon(image); //在按钮上添加图片
button.setPreferredSize(new Dimension(image.getIconWidth(),image.getIconHeight())); //设置按钮大小
3.颜色模块(ColorPanel)的创建
继承JPanel类,
创建过程与工具模块相似,创建Color型的数组。把按钮背景颜色设为当前颜色。
button.setBackground(color[i]); //设置按钮颜色
button.setPreferredSize(new Dimension(25,25)); //设置按钮大小
需要注意的是在对颜色进行监听时要把对象强制转换成按钮型才能获取按钮的背景颜色
ActionListener color_listener=new ActionListener(){
public void actionPerformed(ActionEvent e){
colors=((JButton)e.getSource()).getBackground();
}
4.画图面板类(DrawPanel)的创建
5.在画图板类(Draw)的创建
在画板类中创建3个面板类,并添加到窗体中去。
需要注意的是在对3个面板类进行监听是要给形参返回3个面板对象
MyMouseListener mouse_listener=new MyMouseListener(tool_panel,color_panel,draw_panel);
//给窗体添加鼠标监听器
draw_panel.addMouseListener(mouse_listener);
draw_panel.addMouseMotionListener(mouse_listener); //鼠标移动事件监听
6.事件监听类
整个画图板中事件监听类是比较难的
在事件监听类中我们要接收鼠标监听器传过来的面板对象,并通过获取面板对象传过来的参数进行比较,进行画图和获取颜色。
相关推荐
本篇文章将深入探讨画图小程序的核心概念、技术实现、应用领域以及发展趋势。 一、核心概念 画图小程序是一种轻量级的应用程序,允许用户进行简单的图形绘制和编辑。与专业的图形设计软件相比,它通常具有更简洁的...
《基于ARM的画图工具的设计与开发》这篇文章主要探讨了如何在ARM处理器平台上设计和开发一款画图工具,尤其关注了UCGUI(Micro-Control User Graphic Interface)在嵌入式系统中的应用。UCGUI是一个用于嵌入式设备的...
在实习期间,我利用闲暇时间自学画图技能,提升自己的设计能力。这使我深切体会到,无论做人还是做事,都需要脚踏实地,保持积极的工作态度,避免浮躁。 在这个诚信至上的社会,公司更倾向于招聘那些踏实肯干、能...
这篇PPT学习教案旨在引导学生踏上"四季的脚步",通过初识和学习画图软件,提升他们的计算机应用技能和美术创作能力。 1. 画图窗口的基本组成 学习画图软件的第一步是了解窗口的基本构成。在“画图”程序中,窗口...
我研发并应用了《方格画图板》、《作业循环卡》等教具学具,旨在增强教学的直观性和趣味性,有效解决了教学中的重难点问题。同时,我积极投身教学论文的撰写,对教学过程中的问题进行深度探讨,以此提升教学效能。 ...
这篇文档主要涉及的是工程造价领域中图形算量软件的应用及其对比研究,适合于毕业答辩使用。以下是对其中关键知识点的详细说明: 1. **工程造价软件的普及和影响**:随着计算机技术的发展,工程造价软件在工程项目...
本篇将深入探讨这一主题,从标题和描述中提取出的核心知识点主要包括:智能终端、触屏笔画构造方法以及它们在设备装置中的应用。 1. 智能终端: 智能终端是指具备操作系统、可安装应用软件,并能联网进行数据通信的...
这篇PPT课件是针对四年级学生设计的,主题为"我们的学校",旨在帮助学生学习和理解与学校环境相关的英语词汇和基本句型。在本课件中,重点介绍了以下几个核心知识点: 1. 英语单词学习: - Library(图书馆):这...
这篇四年级英语上册的《Unit My Classroom》A Let's Learn PPT学习教案主要围绕教室内的物品和相关动作展开,旨在帮助学生学习和掌握与教室环境相关的词汇和基本的指令语句。以下是对该教学内容的详细解读: 1. **...
这篇PPT课件详细介绍了小学四年级上册数学中关于线段、直线和射线的基本概念及其应用。线段是具有两个端点的图形,它的长度是固定的,可以用两个大写字母表示,如线段AB或线段BA,也可以用小写字母a表示。射线有一个...
这篇PPT课件是针对四年级下册英语学习的一个单元,主题为"Unit At the Farm",主要教授与农场动物相关的词汇和对话。通过22页的内容,我们可以看到它旨在帮助学生掌握一些基本的农场动物的英语单词及其复数形式,...