java画图板用java编写绘图工具的代码

java画图板  时间:2021-01-16  阅读:()

怎样在java画板实现喷墨

import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Random; import javax.swing.JFrame; public class PenMo extends JFrame { public static void main(String[] args) { new PenMo(); } private boolean penmo;// 喷墨状态 private int mx, my;// 鼠标位置 private Random r = new Random();// 随机数生成器 public PenMo() { setSize(800, 600); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); addMouseListener(new MouseAction()); addMouseMotionListener(new MouseAction()); } @Override public void paint(Graphics g) { if (penmo) { for (int i = 0; i < 50; i++) {// 一次喷墨的颗粒个数50个. int dx;// dx是x方向偏移 int dy;// dy是y方向偏移 do { dx = r.nextInt(50) - 25;// 喷墨的半径在这改,50和下面的25. dy = r.nextInt(50) - 25; } while (dx * dx + dy * dy > 25 * 25); drawPoint(g, mx + dx, my + dy); } } } private void drawPoint(Graphics g, int px, int py) { g.drawLine(px, py, px, py); } private final class MouseAction extends MouseAdapter { @Override public void mousePressed(MouseEvent e) { mx = e.getX(); my = e.getY(); penmo = true; new RunAction().start(); } @Override public void mouseReleased(MouseEvent e) { penmo = false; } @Override public void mouseDragged(MouseEvent e) { if (penmo) { mx = e.getX(); my = e.getY(); } } private final class RunAction extends Thread { @Override public void run() { while (penmo) { try { repaint(); sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } } } } }

怎样用java编写画图板?

这个简单 填充颜色的话就是设置一下一个区域的背景颜色 画图就可以记录鼠标位置然后产生一条线 简单的很啊

用java编写绘图工具的代码

import java.applet.*; import java.awt.*; import java.awt.event.*; public class ResponseToMouse extends Applet implements ActionListener,MouseListener,MouseMotionListener { int xPos,yPos,k=0; Button btnDraw,btnClean,btnErase; public void init() { btnDraw = new Button("画图"); btnClean = new Button("清屏"); btnErase = new Button("擦除"); add(btnDraw); add(btnClean); add(btnErase); btnDraw.addActionListener(this); btnClean.addActionListener(this); btnErase.addActionListener(this); addMouseListener(this); addMouseMotionListener(this); } public void paint(Graphics g) { if(k==1) { g.setColor(Color.red); g.fillOval(xPos-5,yPos-5,10,10); } if(k==2) { super.update(g); } if(k==3) { g.setColor(Color.white); g.fillOval(xPos-5,yPos-5,10,10); } } public void actionPerformed(ActionEvent e){ if (e.getSource()==btnDraw) k=1; if(e.getSource()==btnClean){ k=2; repaint(); } if(e.getSource()==btnErase) k=3; } public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { showStatus("鼠标键按下"); } public void mouseReleased(MouseEvent e) { showStatus("鼠标键释放"); } public void mouseEntered(MouseEvent e) { showStatus("鼠标进入"); } public void mouseExited(MouseEvent e) { showStatus("鼠标移出"); } public void mouseDragged(MouseEvent e) { xPos=e.getX(); yPos=e.getY(); repaint(); } public void mouseMoved(MouseEvent e) { showStatus("鼠标移动"); } public void update(Graphics g){ paint(g); } }

Megalayer(月599元)限时8月香港和美国大带宽服务器

第一、香港服务器机房这里我们可以看到有提供四个大带宽方案,是全向带宽和国际带宽,前者适合除了中国大陆地区的全网地区用户可以用,后者国际带宽适合欧美地区业务。如果我们是需要大陆地区速度CN2优化的,那就需要选择常规的优化带宽方案,参考这里。CPU内存硬盘带宽流量价格选择E3-12308GB240GB SSD50M全向带宽不限999元/月方案选择E3-12308GB240GB SSD100M国际带宽不...

Webhosting24:€15/年-AMD Ryzen/512MB/10GB/2TB/纽约&日本&新加坡等机房

Webhosting24是一家始于2001年的意大利商家,提供的产品包括虚拟主机、VPS、独立服务器等,可选数机房包括美国洛杉矶、迈阿密、纽约、德国慕尼黑、日本、新加坡、澳大利亚悉尼等。商家VPS主机采用AMD Ryzen 9 5950X CPU,NVMe磁盘,基于KVM架构,德国机房不限制流量,网站采用欧元计费,最低年付15欧元起。这里以美国机房为例,分享几款套餐配置信息。CPU:1core内存...

incogne$2.5/月t芬兰VPS,AMD Ryzen、1Gbps带宽

IncogNet LLC是个由3个人运作的美国公司,主要特色是隐私保护,号称绝对保护用户的隐私安全。业务涵盖虚拟主机、VPS等,支持多种数字加密货币、PayPal付款。注册账号也很简单,输入一个姓名、一个邮箱、国家随便选,填写一个邮箱就搞定了,基本上不管资料的真假。当前促销的vps位于芬兰机房,全部都是AMD Ryzen系列的CPU,性能不会差的!5折优惠码:CRYPTOMONTH,支持:BTC,...

java画图板为你推荐
qq讨论组怎样进QQ讨论组手游运营手册堡垒之夜新武器是什么 堡垒之夜新武器介绍图文解析flash导航条flash导航条swf格式的要怎么编辑二叉树遍历二叉树三种遍历方式原则?ios7固件下载ios 7及以上固件请在设备上点信任在哪点qq空间打扮QQ空间打扮网站优化方案一个网站进行优化的流程及步骤微信电话本怎么用怎么用微信打电话网站排名靠前如何让自己的网站排名靠前聚美优品红包聚美优品里怎么合并红包
虚拟主机系统 大硬盘 hostgator googleapps 合肥鹏博士 最好的空间 777te godaddy域名证书 什么是服务器托管 服务器是干什么的 什么是web服务器 免费网络空间 asp空间 酷锐 hosting24 web是什么意思 发证机构 alexa搜 neicun nano 更多