java 渐变橡皮擦_java 的画板上面的一个橡皮檫功能
importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;classToolBarextendsJPanel{//工具条Image[]img;//图标数组intselect=0;//选择项ToolBar(String[]s){//构造方法intn=s...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class ToolBar extends JPanel{//工具条
Image[] img;//图标数组
int select=0;//选择项
ToolBar(String[] s){//构造方法
int n=s.length;
img=new Image[n];
for(int i=0;i
setPreferredSize(new Dimension(0,30));//首选大小
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){//按下鼠标
int n=(e.getX()-5)/25;
if(n
}
});
}
protected void paintComponent(Graphics g){//重绘
g.clearRect(0,0,getWidth(),getHeight());//清除
for(int i=0;i
g.drawRect(3+select*25,3,23,23);//突出选择项
}
}
//
class P extends JPanel{//画板
ToolBar toolBar;//工具条
int state=0;
int x=0;
int y=0;
Image bImage;//后台图像
Graphics bg;//后台画布
P(ToolBar b){//构造方法
toolBar=b;
addMouseListener(
new MouseAdapter(){//监听器
public void mousePressed(MouseEvent e){
switch(toolBar.select){
case 1://椭圆
state+=1000;
x=e.getX();
y=e.getY();
break;
case 2://矩形
state+=2000;
x=e.getX();
y=e.getY();
break;
}
}
public void mouseReleased(MouseEvent e){
switch(toolBar.select){
case 1://椭圆
bg.setColor(Color.black);//黑色
bg.drawOval(x,y,e.getX()-x,e.getY()-y);//椭圆
repaint();//重绘
break;
case 2://矩形
bg.setColor(Color.black);//黑色
bg.drawRect(x,y,e.getX()-x,e.getY()-y);//椭圆
repaint();//重绘
break;
}
}
});
}
protected void paintComponent(Graphics g){//自动重绘
if(bImage==null){//首次创建
bImage = createImage(getSize().width,getSize().height);//后台图像
bg=bImage.getGraphics();//后台画布
bg.setColor(Color.white);//白色
bg.fill3DRect(0, 0, getWidth(), getHeight(), true); //矩形
}
g.drawImage(bImage,0,0,this);//将背景图复制到前台
}
}
class paint{
public static void main(String[] args){
JFrame f=new JFrame("电子画板");
String[] s={"橡皮擦.jpg","椭圆.jpg","矩形.jpg"};
ToolBar b=new ToolBar(s);
f.add(b,"North");
f.add(new P(b));
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setBounds(200,100,400,300);
f.setVisible(true);
}
}
-------------------------------------------------------------
放至代码的文件夹下面有三个小图标 橡皮擦.jpg","椭圆.jpg","矩形.jpg 现在我的橡皮檫功能还没有实现,问一下有没有什么Graphics里面的方法能提供这种功能·
展开
java 渐变橡皮擦_java 的画板上面的一个橡皮檫功能相关推荐
- java批量上传图片_JAVA图片批量上传JS-带预览功能
这篇文章就简单的介绍一个很好用的文件上传工具,批量带预览功能.直接贴代码吧,都有注释,很好理解. HTML页面 pageEncoding="UTF-8"%> 新增照片 var ...
- java 爬虫 异步_Java 爬虫遇上数据异步加载,试试这两种办法!
这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...
- JAVA异步爬虫_Java 爬虫遇上数据异步加载,试试这两种办法!
这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...
- java 渐变橡皮擦_HTML5 实现橡皮擦的擦除效果
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 最近项目刚好用到这种效果,也就是有点像刮刮卡一样,在移动设备上,把某张图片刮掉显示出另一张图片.效果图如下: DEMO请戳右:DEMO ...
- java 渐变橡皮擦_android实现图片橡皮擦和快速染色功能
本文为大家分享了android实现图片橡皮擦和快速染色的具体代码,供大家参考,具体内容如下 1.染色 关于染色部分,可以分别设置调整画笔的大小和画笔的透明度,画笔已经设置了模糊效果.画笔的特效可以调整 ...
- openjdk java字体库_java - 在Linux上为Openjdk Java定义/安装的字体在哪里
在Ubuntu上安装了Oracle 8 jdk,在jre / lib中,它具有各种fontProperties文件以及一个包含字体的字体目录.但是,在安装OpenJdk 8时,jre / lib中的字 ...
- java 渐变橡皮擦_橡皮擦 的动态 - SegmentFault 思否
什么是MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为M ...
- java swt 状态栏_java – 在Mac上美化SWT应用程序
SWT旨在实现跨平台,因此可以在Mac上运行.问题是它承认了麦克兰的主要罪行 – 它是UGLY.工具栏看起来不像Mac工具栏,状态栏看起来不像Mac状态栏等. 有没有人有任何使SWT应用程序看起来更像 ...
- java虚拟机改装_java虚拟机线上配置
java打印gc日志及堆内存异常生成快照文件 1.修改tomcat文件: tomcat/bin/catalina.sh 2. 创建文件夹 /data0/work/tomcat 下Jenkins用户创建 ...
最新文章
- Matlab字符串函数
- 前端学习(1867)vue之电商管理系统电商系统之登录退出实现表单的重置
- 【计算机网络复习】1.1.3 速率相关的性能指标
- 【JAVA SE】第十二章 流(Stream)、IO流和文件(File)
- pubwin2009升级教程
- JavaScript——编码问题
- 谁与争锋,2020腾讯广告算法大赛初赛正式启动
- 如何编译TrueCrypt源码
- 企业数据总线(ESB)和注册服务管理(dubbo)的区别
- html网页设计代码作业—中国风的温泉酒店网(13页) HTML+CSS+JavaScript 学生web网页制作期末大作业_住宿 旅游 主题酒店
- 如何简单粗暴解决echars大数据量渲染卡顿问题
- CAD中一个图形的多种画法
- 微信服务号自定义菜单添加扫码功能
- Mysql----关联查询
- idea 新手创建Spring项目
- 第一次ACM校赛_记录
- 怎么用python画直线_python怎么画直线
- 阶乘分之一求和公式C语言,n的阶乘分之一之和
- 函数的参数作为引用时
- webgis开发智慧校园实现路径规划