- 浏览: 31071 次
- 性别:
最新评论
-
hlf297512399:
支持,不错。。。。。。汤姆~~~~散花~
毕业生活第一季——fubai -
hold_on:
来捧场咯
毕业生活第一季——fubai -
huangfeiNetJava:
学姐加油!
毕业生活第一季——fubai -
javafound:
,嗯,努力不停步~
毕业生活第一季——fubai -
daragon:
daragon 写道哇塞,妹子写的文章果真有声有色不过最底下给 ...
集群hadoop装机步骤(1)
画板实现重绘和橡皮擦
重绘的实现主要在首先要自定义一个通用队列 然后再处理鼠标监听的
类中 实例化静态一个队列对象 以方便直接调用 然后画完各种图形后
将画图的对象加载到队列中保存 然后再重写paint函数 首先调用父类的paint函数
再利用循环调用加载在队列中的画图对象
橡皮擦首先是创建按钮 然后按处理曲线的方法一样处理监听器 唯一的不同之处是
首先在传递颜色的参数时 将颜色定义成画布颜色一致 RGB的(238 238 238)
重绘的实现主要在首先要自定义一个通用队列 然后再处理鼠标监听的
类中 实例化静态一个队列对象 以方便直接调用 然后画完各种图形后
将画图的对象加载到队列中保存 然后再重写paint函数 首先调用父类的paint函数
再利用循环调用加载在队列中的画图对象
橡皮擦首先是创建按钮 然后按处理曲线的方法一样处理监听器 唯一的不同之处是
首先在传递颜色的参数时 将颜色定义成画布颜色一致 RGB的(238 238 238)
package net.java.t071301; import java.awt.Color; import java.awt.Container; 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.JColorChooser; import javax.swing.JFrame; public class DrawFrame extends JFrame{ public static void main (String args []){ DrawFrame df = new DrawFrame(); df.init(); } public void init() { this.setTitle("简易画板"); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(2); this.setSize(600, 400); this.setResizable(false); FlowLayout fl= new FlowLayout(); this.setLayout(fl); JButton jbt1= new JButton("直线"); jbt1.setActionCommand("line"); this.add(jbt1); JButton jbt2= new JButton("曲线"); jbt2.setActionCommand("curve"); this.add(jbt2); JButton jbt3= new JButton("圆形"); jbt3.setActionCommand("oval"); this.add(jbt3); JButton jbt4= new JButton("矩形"); jbt4.setActionCommand("rect"); this.add(jbt4); JButton jbt5= new JButton("填充圆"); jbt5.setActionCommand("filloval"); this.add(jbt5); JButton jbt6= new JButton("填充矩形"); jbt6.setActionCommand("fillrect"); this.add(jbt6); JButton jbt7= new JButton("颜色"); jbt7.setActionCommand("color"); this.add(jbt7); JButton jbt8= new JButton("橡皮擦"); jbt8.setActionCommand("erase"); this.add(jbt8); ActionListener al = new ActionListener(){ public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="color" ){ color = JColorChooser.showDialog(null,"颜色选择器",Color.BLACK); } else{ items = e.getActionCommand(); } } }; jbt1.addActionListener(al); jbt2.addActionListener(al); jbt3.addActionListener(al); jbt4.addActionListener(al); jbt5.addActionListener(al); jbt6.addActionListener(al); jbt7.addActionListener(al); jbt8.addActionListener(al); this.setVisible(true); Graphics g = this.getGraphics(); DrawListener dl = new DrawListener(g,this); this.addMouseListener(dl); this.addMouseMotionListener(dl); } //重写一个绘制方法 public void paint(Graphics g){ super.paint(g); for(int i=0;i<DrawListener.qi.size();i++){ Draw draw=DrawListener.qi.get(i); draw.draw(g); } } public Color getColor(){ return color; } public String getItems(){ return items; } private Color color =Color.BLACK; private String items="line"; }
package net.java.t071301; import java.awt.Color; 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 Graphics g; private DrawFrame df; int x1,y1,x2,y2; public static QueueIplm<Draw> qi=new QueueIplm<Draw> (); 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.getItems().equals("line")){ draw = new DrawLine(x1,y1,x2,y2,df.getColor()); draw.draw(g); qi.add(draw); } else if(df.getItems().equals("oval")){ draw = new DrawOval(x1,y1,Math.abs(x2-x1), Math.abs(y2-y1),df.getColor()); draw.draw(g); qi.add(draw); } else if(df.getItems().equals("rect")){ draw = new DrawRect(x1,y1,Math.abs(x2-x1), Math.abs(y2-y1),df.getColor()); draw.draw(g); qi.add(draw); } else if(df.getItems().equals("fillrect")){ draw = new DrawFillRect(x1,y1,Math.abs(x2-x1), Math.abs(y2-y1),df.getColor()); draw.draw(g); qi.add(draw); } else if(df.getItems().equals("filloval")){ draw = new DrawFillOval(x1,y1,Math.abs(x2-x1), Math.abs(y2-y1),df.getColor()); draw.draw(g); qi.add(draw); } } public void mouseDragged(MouseEvent e) { x2=e.getX(); y2=e.getY(); Draw draw; if(df.getItems().equals("curve")){ draw = new DrawLine(x1,y1,x2,y2,df.getColor()); draw.draw(g); x1=x2; y1=y2; qi.add(draw);} else if(df.getItems().equals("erase")){ Color cr = new Color(238,238,238); float[] hsbvals = null; float[] objx=cr.RGBtoHSB(238, 238, 238, hsbvals); float a=objx[0]; float b=objx[1]; float c=objx[2]; draw = new DrawLine(x1,y1,x2,y2,Color.getHSBColor(a, b, c)); draw.draw(g); x1=x2; y1=y2; qi.add(draw); } } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseMoved(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } }
ackage net.java.t071301; import java.awt.Graphics; public abstract class Draw { public abstract void draw(Graphics g); } package net.java.t071301; import java.awt.Color; import java.awt.Graphics; public class Drawerase extends Draw{ private Color color; private int x1,y1,x2,y2; public Drawerase(int x1,int y1,int x2,int y2,Color color){ this.x1=x1; this.y1=y1; this.x2=x2; this.y2=y2; this.color=color; } public void draw(Graphics g) { g.setColor(color); g.drawLine(x1, y1, x2, y2); } } ackage net.java.t071301; import java.awt.Color; import java.awt.Graphics; public class DrawFillOval extends Draw{ private int x1,y1,x2,y2; private Color color; public DrawFillOval(int x1,int y1,int x2,int y2, Color color){ this.x1=x1; this.y1=y1; this.x2=x2; this.y2=y2; this.color=color; } public void draw(Graphics g) { g.setColor(color); g.fillOval(x1, y1, x2, y2); } }
package net.java.t071301; import java.awt.Color; import java.awt.Graphics; public class DrawFillRect extends Draw{ private int x1,y1,x2,y2; private Color color; public DrawFillRect(int x1,int y1,int x2,int y2, Color color){ this.x1=x1; this.y1=y1; this.x2=x2; this.y2=y2; this.color=color; } public void draw(Graphics g) { g.setColor(color); g.fillRect(x1, y1, x2, y2); } }
ackage net.java.t071301; import java.awt.Color; import java.awt.Graphics; public class DrawLine extends Draw{ private int x1,y1,x2,y2; private Color color; public DrawLine(int x1,int y1,int x2,int y2, Color color){ this.x1=x1; this.y1=y1; this.x2=x2; this.y2=y2; this.color=color; } public void draw(Graphics g) { g.setColor(color); g.drawLine(x1, y1, x2, y2); } }
package net.java.t071301; import java.awt.Color; import java.awt.Graphics; public class DrawOval extends Draw{ private int x1,y1,x2,y2; private Color color; public DrawOval(int x1,int y1,int x2,int y2, Color color){ this.x1=x1; this.y1=y1; this.x2=x2; this.y2=y2; this.color=color; } public void draw(Graphics g) { g.setColor(color); g.drawOval(x1, y1, x2, y2); } } package net.java.t071301; import java.awt.Color; import java.awt.Graphics; public class DrawRect extends Draw{ private int x1,y1,x2,y2; private Color color; public DrawRect(int x1,int y1,int x2,int y2, Color color){ this.x1=x1; this.y1=y1; this.x2=x2; this.y2=y2; this.color=color; } public void draw(Graphics g) { g.setColor(color); g.drawRect(x1, y1, x2, y2); } }
package net.java.t071301; public interface Queue<E> { //得到指定位置的对象 public E get(int index); //加入一个对象 public void add(E e); //在指定的位置插入一个对象 public void insert (E e, int index); public void addall(QueueIplm<E> list); //删除指定位置的对象 public E delete(int index); //得到队列中的元素 public int size(); }
package net.java.t071301; public class QueueIplm<E> implements Queue<E>{ private Object[] obj=null; private int initCount =0; private int incresCount =1; public QueueIplm(){ obj = new Object[0]; } public QueueIplm(int initCount){ this.initCount=initCount; obj = new Object[initCount]; } public QueueIplm(int initCount, int incresCount){ this.initCount=initCount; this.incresCount=incresCount; obj = new Object[initCount]; } public void add(E e) { Object[] temp = new Object[obj.length + incresCount]; for (int i = 0; i < obj.length; i++) { temp[i] = obj[i]; } temp[obj.length] = e; this.initCount++; obj = temp; } public void addall(QueueIplm<E> list) { Object[] temp = new Object[obj.length + list.size()]; for (int i = 0; i < obj.length; i++) { temp[i] = obj[i]; } for (int i = 0; i < list.size(); i++) { temp[i + obj.length] = list.get(i); this.initCount++; } obj = temp; } public E delete(int index) { E item = (E) obj[index]; for (int i = index; i < obj.length; i++) { obj[i] = obj[i + 1]; } this.initCount--; return item; } public E get(int index) { if (index < 0 || index > initCount) return null; E item = (E) obj[index]; return item; } public void insert(E e,int index) { obj[index] = e; } public int size(){ return initCount; } }
发表评论
-
容易忘记混淆的组件总结
2011-09-30 00:38 921JMenuBar---菜单条 作用:都是用来创建一个水平菜单栏 ... -
集合框架的总结
2011-07-29 00:07 790集合框架3大接口分别是set list map 都在java. ... -
认识文件和流
2011-07-27 09:19 793文件 文件有相对路径: ... -
关键字总结
2011-07-24 01:41 851最常见关键字总结 1------访问修饰符 pub ... -
数组,队列,泛型
2011-07-13 15:41 1107数组注意: 数组是引 ... -
计算器的实现
2011-07-13 03:18 866------------简单计算器的实现----------- ... -
画板的实现
2011-07-11 19:56 1395画板的是实现的思路 第一部 自定义一个DrawFrame类继 ... -
初识监听器
2011-07-10 01:18 927接口是由常量和抽象方法(不实现)组成 语法格式 public ... -
界面设计第一课
2011-07-09 18:01 1009构造函数 格式 访 ... -
java的多态特性
2011-07-09 13:23 9731 继承的语法格式 public class 子类名 ext ... -
类,对象,OOP
2011-07-09 13:21 7971.有哪些是对象? 现实生活中有哪些是对象? 对象是现实生 ... -
初识java-初级阶段
2011-07-09 13:19 6831.了解java的基本语法规则 访问修饰符 class ...
相关推荐
4:支持多语言. 5:操作综合其它软件. 6:自定义快捷键. 7:在IE工具栏上加按钮,可以直接拖动连接到按钮上下载. 8:注册采用激活方式. 9:采用Messenger的弹出滑动消息提示框. 10:下载管理,虚拟文件夹. 11:自动ping. 12:...
1.7.2动画=重绘+交换 第2章状态管理和绘制几何物体 2.1绘图工具箱 2.1.1清除窗口 2.1.2指定颜色 2.1.3强制完成绘图操作 2.1.4坐标系统工具箱 2.2描述点、直线和多边形 2.2.1什么是点、直线和多边形? 2.2.2指定顶点 ...
第三章 PT80 NEAT 编程基础 ..................................................................................................................... 17 事件驱动和消息响应机制 .................................
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
-) -修复了导致紧凑模式下的合并列表无法正确重绘的错误(问题#45)0.7中的新增功能========================================================================================================================...
VisualBasic提供可视化设计工具,编程人员可利用VisualBasic提供的控件轻松的“画”出应用程序的友好界面,因此容易入门,入门以后就有能力进一步学习难度更大的编程语言。VisualBasic作为编程人员的首选程序设计...
Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...
Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 VerQueryValue 这个函数用于从版本资源中获取信息 WriteFile 将数据写入一个文件 WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并...
4 <br>0008 为程序设置版本和帮助信息 4 <br>0009 设置Windows应用程序启动窗体 5 <br>0010 设置Web应用程序起始页 5 <br>0011 如何设置程序的出错窗口 5 <br>0012 如何进行程序调试 6 ...
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
16.3.3 母版页刷新内容窗体 16.4 小结 第17章 ASP.NET MVC基础 17.1 了解MVC 17.1.1 MVC和Web Form 17.1.2 ASP.NET MVC的运行结构 17.2 ASP.NET MVC基础 17.2.1 安装ASP.NET MVC 17.2.2 新建一个MVC应用程序 17.2.3 ...
16.3.3 母版页刷新内容窗体 16.4 小结 第17章 ASP.NET MVC基础 17.1 了解MVC 17.1.1 MVC和Web Form 17.1.2 ASP.NET MVC的运行结构 17.2 ASP.NET MVC基础 17.2.1 安装ASP.NET MVC 17.2.2 新建一个MVC应用程序 17.2.3 ...
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
16.3.3 母版页刷新内容窗体 16.4 小结 第 17 章 ASP.NET MVC 基础 17.1 了解MVC 17.1.1 MVC 和Web Form 17.1.2 ASP.NET MVC 的运行结构 17.2 ASP.NET MVC 基础 17.2.1 安装ASP.NET MVC 17.2.2 新建一个MVC 应用程序 ...
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
全书分6篇共25章,主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合的使用、面向对象编程技术、数据结构与算法、Windows窗体基础、特色窗体界面、窗体控制技术、MDI窗体和继承窗体、Windows...