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 的画板上面的一个橡皮檫功能相关推荐

  1. java批量上传图片_JAVA图片批量上传JS-带预览功能

    这篇文章就简单的介绍一个很好用的文件上传工具,批量带预览功能.直接贴代码吧,都有注释,很好理解. HTML页面 pageEncoding="UTF-8"%> 新增照片 var ...

  2. java 爬虫 异步_Java 爬虫遇上数据异步加载,试试这两种办法!

    这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...

  3. JAVA异步爬虫_Java 爬虫遇上数据异步加载,试试这两种办法!

    这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...

  4. java 渐变橡皮擦_HTML5 实现橡皮擦的擦除效果

    声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 最近项目刚好用到这种效果,也就是有点像刮刮卡一样,在移动设备上,把某张图片刮掉显示出另一张图片.效果图如下:  DEMO请戳右:DEMO ...

  5. java 渐变橡皮擦_android实现图片橡皮擦和快速染色功能

    本文为大家分享了android实现图片橡皮擦和快速染色的具体代码,供大家参考,具体内容如下 1.染色 关于染色部分,可以分别设置调整画笔的大小和画笔的透明度,画笔已经设置了模糊效果.画笔的特效可以调整 ...

  6. openjdk java字体库_java - 在Linux上为Openjdk Java定义/安装的字体在哪里

    在Ubuntu上安装了Oracle 8 jdk,在jre / lib中,它具有各种fontProperties文件以及一个包含字体的字体目录.但是,在安装OpenJdk 8时,jre / lib中的字 ...

  7. java 渐变橡皮擦_橡皮擦 的动态 - SegmentFault 思否

    什么是MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为M ...

  8. java swt 状态栏_java – 在Mac上美化SWT应用程序

    SWT旨在实现跨平台,因此可以在Mac上运行.问题是它承认了麦克兰的主要罪行 – 它是UGLY.工具栏看起来不像Mac工具栏,状态栏看起来不像Mac状态栏等. 有没有人有任何使SWT应用程序看起来更像 ...

  9. java虚拟机改装_java虚拟机线上配置

    java打印gc日志及堆内存异常生成快照文件 1.修改tomcat文件: tomcat/bin/catalina.sh 2. 创建文件夹 /data0/work/tomcat 下Jenkins用户创建 ...

最新文章

  1. Matlab字符串函数
  2. 前端学习(1867)vue之电商管理系统电商系统之登录退出实现表单的重置
  3. 【计算机网络复习】1.1.3 速率相关的性能指标
  4. 【JAVA SE】第十二章 流(Stream)、IO流和文件(File)
  5. pubwin2009升级教程
  6. JavaScript——编码问题
  7. 谁与争锋,2020腾讯广告算法大赛初赛正式启动
  8. 如何编译TrueCrypt源码
  9. 企业数据总线(ESB)和注册服务管理(dubbo)的区别
  10. html网页设计代码作业—中国风的温泉酒店网(13页) HTML+CSS+JavaScript 学生web网页制作期末大作业_住宿 旅游 主题酒店
  11. 如何简单粗暴解决echars大数据量渲染卡顿问题
  12. CAD中一个图形的多种画法
  13. 微信服务号自定义菜单添加扫码功能
  14. Mysql----关联查询
  15. idea 新手创建Spring项目
  16. 第一次ACM校赛_记录
  17. 怎么用python画直线_python怎么画直线
  18. 阶乘分之一求和公式C语言,n的阶乘分之一之和
  19. 函数的参数作为引用时
  20. webgis开发智慧校园实现路径规划

热门文章

  1. 信号量机制【操作系统学习笔记】
  2. 现阶段的K12在线教育情况
  3. 提高工作效率的重要性 苹果手机用便签软件制定计划
  4. js 的 onblur 事件
  5. 【C语言】按位与、按位或、按位异或
  6. Tackling Data Heterogeneity in Federated Learning with Class Prototypes, AAAI 2023
  7. MariaDB命令详解
  8. 基于学生做题记录的成绩预测
  9. 使用WMI来得到系统的服务
  10. unity-unet-多人在线同步问题解决方案