- 浏览: 32619 次
- 性别:
最新评论
-
hlf297512399:
支持,不错。。。。。。汤姆~~~~散花~
毕业生活第一季——fubai -
hold_on:
来捧场咯
毕业生活第一季——fubai -
huangfeiNetJava:
学姐加油!
毕业生活第一季——fubai -
javafound:
,嗯,努力不停步~
毕业生活第一季——fubai -
daragon:
daragon 写道哇塞,妹子写的文章果真有声有色不过最底下给 ...
集群hadoop装机步骤(1)
画板的是实现的思路
第一部 自定义一个DrawFrame类继承系统的JFrame类
第二部 自定义一个显示方法 设置窗体的名称 大小 居中等属性
第三部 创建几个按钮 并加载到当前对象上
第四步 为按钮设置监听器 并实现事件处理 具体来说 就在为按钮设置一个动作命令
然后在处理事件的时侯判断是哪个按钮发生了动作 若是颜色 将得到的颜色赋值给私有属性
color 若是其他的按钮赋给私有属性item。
第五步 设置鼠标监听器 将监听到的消息 传给事件处理类
第六步 明确处理类中要有一个构造函数参数分别是 从DrawFrame中传递来的当前的画布对象 和当前对象
第七步 注意在 处理类DrawListener中设置画布对象属性 当前对象的属性 以及4个坐标属性。
第八步 明确处理类要实现 MouseListener,MouseMotionListener 接口所以要重写接口中的方法
在mousePressed方法中将第一个点的坐赋给x1,y1在mouseReleased将第二点的坐标赋给
x2,y2 并判断当前按下的按钮是谁 设置当前的颜色 其他的方法也要重写 可以不实现
第九步 自定义一个抽象类Draw 再分别定义画直线 曲线的类 继承自该类 并复写其方法
值得注意的是画布对象在不同的子类中要调用不同的方法处理 画图功能
第十步 因为以及判断好当前按钮是谁 再在以前的基础上不同的按钮 用几个不同的画图类实例化不同的对象
调用各自的方法 画图 (注意 因为曲线的特殊性 要特别处理)
第十一步在drawframe类中 写一个主函数 并且实例化一个对象 调用显示方法
第一部 自定义一个DrawFrame类继承系统的JFrame类
第二部 自定义一个显示方法 设置窗体的名称 大小 居中等属性
第三部 创建几个按钮 并加载到当前对象上
第四步 为按钮设置监听器 并实现事件处理 具体来说 就在为按钮设置一个动作命令
然后在处理事件的时侯判断是哪个按钮发生了动作 若是颜色 将得到的颜色赋值给私有属性
color 若是其他的按钮赋给私有属性item。
第五步 设置鼠标监听器 将监听到的消息 传给事件处理类
第六步 明确处理类中要有一个构造函数参数分别是 从DrawFrame中传递来的当前的画布对象 和当前对象
第七步 注意在 处理类DrawListener中设置画布对象属性 当前对象的属性 以及4个坐标属性。
第八步 明确处理类要实现 MouseListener,MouseMotionListener 接口所以要重写接口中的方法
在mousePressed方法中将第一个点的坐赋给x1,y1在mouseReleased将第二点的坐标赋给
x2,y2 并判断当前按下的按钮是谁 设置当前的颜色 其他的方法也要重写 可以不实现
第九步 自定义一个抽象类Draw 再分别定义画直线 曲线的类 继承自该类 并复写其方法
值得注意的是画布对象在不同的子类中要调用不同的方法处理 画图功能
第十步 因为以及判断好当前按钮是谁 再在以前的基础上不同的按钮 用几个不同的画图类实例化不同的对象
调用各自的方法 画图 (注意 因为曲线的特殊性 要特别处理)
第十一步在drawframe类中 写一个主函数 并且实例化一个对象 调用显示方法
package net.java.t071001; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; /** * 定义一个DrawFram类继承Frame */ public class DrawFrame extends JFrame { //主函数 public static void main(String[] args) { DrawFrame df =new DrawFrame(); df.init(); } //定义一个init()方法 public void init(){ this.setTitle("画板");//设置名字为画板 this.setLocationRelativeTo(null);//设置位置为居中显示 this.setSize(400,600);//设置大小 this.setResizable(false);//设置大小不可变 this.setDefaultCloseOperation(3);//设置关闭窗口时程序退出 FlowLayout fl = new FlowLayout();//设置布局 this.setLayout(fl); JButton jline = new JButton("画直线");//实例化一个画直线的按钮 jline.setActionCommand("Line");//设置动作命令 JButton jCurve = new JButton("画曲线");//实例化一个画曲线的按钮 jCurve.setActionCommand("Curve");//设置动作命令 JButton jOval= new JButton("画圆");//实例化一个画圆的按钮 jOval .setActionCommand("Oval");///设置动作命令 JButton jRect = new JButton("画矩形");//实例化一个画矩形的按钮 jRect.setActionCommand("Rect");//设置动作命令 JButton jFillOval = new JButton("画填充圆");//实例化一个画填充圆的按钮 jFillOval.setActionCommand("FillOval");//设置动作命令 JButton jFillRect = new JButton("画填充矩形");//实例化一个画填充矩形的按钮 jFillRect.setActionCommand("FillRect");//设置动作命令 JButton jColor = new JButton("颜色");//实例化一个颜色的按钮 jColor .setActionCommand("Color");//设置动作命令 this.add(jline);//把按钮加到窗体上 this.add(jCurve); this.add(jOval); this.add(jRect); this.add(jFillOval); this.add(jFillRect); this.add(jColor); ActionListener al =new ActionListener(){ public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("Color")){ // JColorChooser类是一个颜色选择面板,使用showDialog方法将界面显示出来,null表示没有指定父窗体,第二参数是标题,但三个参数是默认的颜色 color = javax.swing.JColorChooser.showDialog(null, "颜色选择器", Color.BLACK); } else { // 得按钮上的动作命令值。 item = e.getActionCommand(); } } }; jline.addActionListener(al);//将监听器加到按钮上 jCurve.addActionListener(al); jOval.addActionListener(al); jRect.addActionListener(al); jFillOval.addActionListener(al); jFillRect.addActionListener(al); jColor.addActionListener(al); // 窗体可见 this.setVisible(true); //获取画布对象 Graphics g = this.getGraphics(); //实例化画图形事件处理类的对象 DrawListener dl = new DrawListener(g,this); //给窗体添加鼠标监听器 this.addMouseListener(dl); this.addMouseMotionListener(dl); } //定义公有的方法用来获取颜色 public Color getColor(){ return color; } //定义公有的方法用来获取选择的图形 public String getItem(){ return item; } //定义颜色属性 private Color color = Color.BLACK; //定义图形属性 private String item = "Line"; }
package net.java.t071001; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; public class DrawListener implements MouseListener,MouseMotionListener { //定义保存坐标值的四个属性 private int x1,y1,x2,y2; private Graphics g; private DrawFrame df; //接收画布对象的构造函数 public DrawListener(Graphics g ,DrawFrame df){ this.g = g; this.df = df; } //重写鼠标点击触发方法 public void mousePressed(MouseEvent e) { x1=e.getX();//将鼠标得到的付给相应的变量 y1=e.getY(); } //重写鼠标释放触发方法 public void mouseReleased(MouseEvent e) { x2=e.getX(); y2=e.getY(); Draw draw; //判断点击的是否是直线 if(df.getItem().equals("Line")){ //得到你选择的颜色设置当前图形的颜色 g.setColor(df.getColor()); //实例化画直线类的对象 draw = new DrawLine(); //调用画直线的方法 draw.draw(g, x1, y1, x2, y2); } else if(df.getItem().equals("Oval")){ //得到你选择的颜色设置当前图形的颜色 g.setColor(df.getColor()); //实例化画类的对象 draw = new DrawOval(); //调用画圆形的方法 draw.draw(g, x1, y1,Math.abs(x1-x2), Math.abs(y1-y2)); } else if(df.getItem().equals("Rect")){ //得到你选择的颜色设置当前图形的颜色 g.setColor(df.getColor()); //实例化画类的对象 draw = new DrawRect(); //调用画矩形的方法 draw.draw(g, x1, y1,Math.abs(x1-x2), Math.abs(y1-y2)); } else if(df.getItem().equals("FillRect")){ //得到你选择的颜色设置当前图形的颜色 g.setColor(df.getColor()); //实例化画类的对象 draw = new DrawFillRect(); //调用画填充矩形的方法 draw.draw(g, x1, y1, Math.abs(x1-x2), Math.abs(y1-y2)); } else if(df.getItem().equals("FillOval")){ //得到你选择的颜色设置当前图形的颜色 g.setColor(df.getColor()); //实例化画类的对象 draw = new DrawFillOval(); //调用画填充圆形的方法 draw.draw(g, x1, y1, Math.abs(x1-x2), Math.abs(y1-y2)); } } //重写鼠标拖动触发方法 public void mouseDragged(MouseEvent e) { //在鼠标释放的时候就获取第二个坐标点的值 x2 = e.getX(); y2 = e.getY(); Draw draw; //判断点击的是否是直线 if(df.getItem().equals("Curve")){ //得到你选择的颜色设置当前图形的颜色 g.setColor(df.getColor()); //实例化画直线类的对象 draw = new DrawLine(); //调用画曲线的方法 draw.draw(g, x1, y1, x2, y2); //互换坐标 x1 = x2; y1 = y2; } } public void mouseClicked(MouseEvent arg0) { } public void mouseEntered(MouseEvent arg0) { } public void mouseExited(MouseEvent arg0) { } public void mouseMoved(MouseEvent arg0) { } }
package net.java.t071001; import java.awt.Graphics; /** * 定义一个Draw抽象类 * @author 汤剑男 * */ public abstract class Draw { //定义一个画图的方法 public abstract void draw(Graphics g, int x1, int y1, int x2, int y2); }
package net.java.t071001; import java.awt.Graphics; /** * 定义一个drawline类继承抽象类 draw * */ public class DrawLine extends Draw { //重写draw抽象类中的draw抽象方法 public void draw(Graphics g, int x1, int y1, int x2, int y2) { //输出信息 System.out.println("画直线"); // 调用画直线的方法 g.drawLine(x1, y1, x2, y2); } }
package net.java.t071001; import java.awt.Graphics; /** * 定义一个drawoval类继承抽象类 draw * */ public class DrawOval extends Draw { //重写draw抽象类中的draw抽象方法 public void draw(Graphics g, int x1, int y1, int x2, int y2) { //输出信息 System.out.println("画圆形"); // 调用画圆形的方法 g.drawOval(x1, y1, x2, y2); } }
package net.java.t071001; import java.awt.Graphics; /** * 定义一个drawrect类继承抽象类 draw * */ public class DrawRect extends Draw { //重写draw抽象类中的draw抽象方法 public void draw(Graphics g, int x1, int y1, int x2, int y2) { //输出信息 System.out.println("画矩形"); // 调用画矩形的方法 g.drawRect(x1, y1, x2, y2); } }
package net.java.t071001; import java.awt.Graphics; public class DrawFillOval extends Draw { //重写draw抽象类中的draw抽象方法 public void draw(Graphics g, int x1, int y1, int x2, int y2) { //输出信息 System.out.println("画填充圆"); // 调用画填充圆的方法 g.fillOval(x1, y1, x2, y2); } }
ackage net.java.t071001; import java.awt.Graphics; public class DrawFillRect extends Draw { //重写draw抽象类中的draw抽象方法 public void draw(Graphics g, int x1, int y1, int x2, int y2) { //输出信息 System.out.println("画填充矩形"); // 调用画填充矩形的方法 g.fillRect(x1, y1, x2, y2); } }
发表评论
-
容易忘记混淆的组件总结
2011-09-30 00:38 993JMenuBar---菜单条 作用:都是用来创建一个水平菜单栏 ... -
集合框架的总结
2011-07-29 00:07 876集合框架3大接口分别是set list map 都在java. ... -
认识文件和流
2011-07-27 09:19 877文件 文件有相对路径: ... -
关键字总结
2011-07-24 01:41 892最常见关键字总结 1------访问修饰符 pub ... -
重绘-刷新的程序语言
2011-07-15 13:38 941画板实现重绘和橡皮擦 重绘的实现主要在首先要自定义一个通用 ... -
数组,队列,泛型
2011-07-13 15:41 1146数组注意: 数组是引 ... -
计算器的实现
2011-07-13 03:18 899------------简单计算器的实现----------- ... -
初识监听器
2011-07-10 01:18 964接口是由常量和抽象方法(不实现)组成 语法格式 public ... -
界面设计第一课
2011-07-09 18:01 1056构造函数 格式 访 ... -
java的多态特性
2011-07-09 13:23 10141 继承的语法格式 public class 子类名 ext ... -
类,对象,OOP
2011-07-09 13:21 8311.有哪些是对象? 现实生活中有哪些是对象? 对象是现实生 ... -
初识java-初级阶段
2011-07-09 13:19 7161.了解java的基本语法规则 访问修饰符 class ...
相关推荐
在“e语言-易语言利用画板实现自绘列表”这个主题中,我们将深入探讨如何使用易语言的画板组件来创建自定义的列表显示功能。 画板组件是易语言提供的一种图形用户界面(GUI)元素,它允许程序员进行自由的图形绘制...
Flex画板实现主要涉及到的是Adobe Flex技术,这是一种用于构建富互联网应用程序(RIA)的开源框架。Flex使用MXML和ActionScript编程语言,基于Flash Player或Adobe AIR运行时环境,能够创建交互性强、视觉效果丰富的...
火山安卓高级画板实现画板开发源码
这个“vc简单画板实现”项目通常会涵盖以下几个核心知识点: 1. MFC(Microsoft Foundation Classes)库:VC++中的MFC是一个C++类库,用于简化Windows应用程序的开发。在这个项目中,我们会用到MFC提供的窗口类...
这个案例中的"通过画板实现标签透明源码"就是一个典型的例子,它涉及到图形用户界面(GUI)设计和编程技术。易语言作为中国本土的一种简单易学的编程语言,被广泛用于教学和小型项目开发。SanYe,可能是资源的作者或...
标题中的“fps表与画板实现完美打印预览”指的是在VB.NET环境下,利用特定的控件和方法来实现高质量的打印预览功能。FPS(Frames Per Second)在这里可能是指一种用于显示数据表格的控件,它能有效地展示数据并支持...
标题提到的“易语言画板实现圆形按纽源码”,就是一种利用易语言创建图形界面时,通过自定义画板控件来实现圆形按钮的方法。 在易语言中,通常可以使用“画板”控件配合“画图”命令来绘制自定义图形。画板控件提供...
在这个“易语言用画板实现画数字雨源码”项目中,我们探讨的是如何使用易语言的画板组件来创建一个动态的数字雨效果。这种效果常见于各种数字时钟或艺术展示,数字不断滚动下落,给人一种动态和科技感。 在易语言中...
易语言画板实现简单的验证码。@风间琉璃。
在这个“易语言画板实现图片浏览效果源码”项目中,我们可以深入探讨如何使用易语言来创建一个具备图片浏览功能的画板应用。 首先,我们要理解易语言的基本语法和结构。易语言采用的是“汉字编程”,即用汉语词汇来...
在这个“易语言画板实现万花尺源码”项目中,开发者“没有翅膀de鱼”提供了一个利用易语言编写的程序,该程序能够在画板上模拟万花尺的效果。 万花尺,又称分形花,是一种通过旋转和组合小圆来创建复杂图案的工具。...
在这个“易语言画板实现炸弹人小游戏源码”项目中,我们可以深入理解易语言如何应用于游戏开发,特别是经典的小游戏——炸弹人。 炸弹人游戏是一款早期流行的动作冒险游戏,玩家控制的角色可以放置炸弹来炸毁障碍物...
在IT领域,"简单画板实现"通常是指创建一个用户界面,允许用户通过鼠标或触控设备进行绘图。这个项目可能是一个基本的图形用户界面应用程序,模仿了计算机操作系统中常见的"画板"工具,如Windows的“画图”程序。...
《画板实现炸弹人小游戏-易语言》是一个教学资源,主要介绍了如何使用易语言编程工具来设计和开发一款类似于经典游戏“炸弹人”的小型游戏。易语言是一种面向对象的、适合初学者的中文编程语言,它以简洁明了的语法...