资源简介
java大作业--画图板。可以绘图(包含铅笔工具及多种形状)、调色、调节笔头粗细和形状、橡皮、吸管、保存图片、打开图片、剪切、复制、粘贴、撤销。
代码片段和文件信息
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
import palettetool.PaletteStep;
import palettetool.PaletteTool;
public class DrawingBoardPanel extends JPanel implements MouseListener
MouseMotionListener {
private static final long serialVersionUID = 1L;
private int stepCounts = 0;
private int maxStepCounts = 20;
private PaletteTool thisPaletteTool;
private PaletteStep thisPaletteStep;
private List paletteSteps;
private BufferedImage tempImage;
private BufferedImage backupImage;
private InfoPanel infoPanel;
private OperateHistoryPanel opPanel;
private static Robot robot = null;
private File file = null;
private int w = 480;
private int h = 360;
static {
try {
robot = new Robot();
} catch (AWTException e1) {
e1.printStackTrace();
}
}
public DrawingBoardPanel() {
super();
paletteSteps = new ArrayList(maxStepCounts);
this.setPreferredSize(new Dimension(w h));
this.addMouseListener(this);
this.addMouseMotionListener(this);
backupImage = new BufferedImage(w h BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) backupImage.getGraphics();
g2.setColor(Color.WHITE);
g2.fillRect(0 0 w h);
}
public DrawingBoardPanel(File file) {
super();
if (file != null && file.exists()) {
this.file = file;
try {
backupImage = ImageIO.read(file);
w = backupImage.getWidth();
h = backupImage.getHeight();
} catch (IOException e) {
e.printStackTrace();
backupImage = null;
}
}
this.setPreferredSize(new Dimension(w h));
paletteSteps = new ArrayList(maxStepCounts);
this.addMouseListener(this);
this.addMouseMotionListener(this);
}
public void save() {
save(file);
}
public void save(File file) {
BufferedImage savedImage = new BufferedImage(w h
BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) savedImage.getGraphics();
if (stepCounts == 0)
g.drawImage(backupImage 0 0 null);
else
g.drawImage(tempImage 0 0 null);
for (int i = 0; i < stepCounts; i++) {
paletteSteps.get(i).draw(g);
}
try {
ImageIO.write(savedImage “jpg“ file);
} catch (IOException e) {
e.printStackTrace();
}
}
public void back(int steps) {
if (0 <= steps && steps < maxStepCounts) {
stepCounts = steps;
repaint();
}
}
public void setThisPaletteTool(PaletteTool tool) {
this.thisPaletteTool = tool;
}
public void setInfoPanel
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 0 2015-05-14 13:32 大作业--画图板\.me
文件 250993 2015-05-19 16:17 大作业--画图板\.me
文件 20 2015-05-14 13:33 大作业--画图板\.me
文件 32 2015-05-14 13:33 大作业--画图板\.me
文件 250 2015-05-17 23:54 大作业--画图板\.me
文件 438 2015-05-14 13:34 大作业--画图板\.me
文件 250 2015-05-18 00:15 大作业--画图板\.me
文件 4855 2015-05-16 04:07 大作业--画图板\.me
文件 360 2015-05-17 04:32 大作业--画图板\.me
文件 976 2015-05-15 20:37 大作业--画图板\.me
文件 78 2015-05-17 00:07 大作业--画图板\.me
文件 1694 2015-05-17 02:21 大作业--画图板\.me
文件 164 2015-05-16 14:13 大作业--画图板\.me
文件 2237 2015-05-17 00:43 大作业--画图板\.me
文件 1306 2015-05-16 02:31 大作业--画图板\.me
文件 1059 2015-05-16 01:23 大作业--画图板\.me
文件 2815 2015-05-17 15:57 大作业--画图板\.me
文件 2033 2015-05-15 15:26 大作业--画图板\.me
文件 585 2015-05-16 15:34 大作业--画图板\.me
文件 10013 2015-05-17 17:55 大作业--画图板\.me
文件 2168 2015-05-14 21:46 大作业--画图板\.me
文件 4231 2015-05-17 23:04 大作业--画图板\.me
文件 1832 2015-05-17 13:49 大作业--画图板\.me
文件 2653 2015-05-17 16:01 大作业--画图板\.me
文件 735 2015-05-16 01:26 大作业--画图板\.me
文件 2249 2015-05-15 15:57 大作业--画图板\.me
文件 0 2015-05-16 14:08 大作业--画图板\.me
文件 2024 2015-05-15 15:25 大作业--画图板\.me
文件 584 2015-05-17 00:52 大作业--画图板\.me
文件 12905 2015-05-17 04:18 大作业--画图板\.me
............此处省略3156个文件信息
- 上一篇:李刚疯狂Java讲义第三版光盘内容
- 下一篇:Android银联支付最新API和
相关资源
- 李刚疯狂Java讲义第三版光盘内容
- jsp(java)订票系统(论文专题)
- Java微信小程序商城
- java源码包3
- 深入体验Java_Web开发内幕-核心基础超
- Java Web开发实战经典
- 深入分析JavaWeb技术内幕修订版_13596
- android瘦身软件源代码
- java 商城系统
- 多元线性回归java实现
- 编译原理课程设计-java版
- B/S 公交管理系统 Java源码 eclipse工程
- 小型图书管理系统java+access
- 打砖块游戏Java
- 中国象棋java版 保存 悔棋
- 高仿淘宝收货地址,内置全国各个省
- java记账本
- 编译原理 C、Java语言词法分析器java实
- java邮件发送客户端
- ftp暴力破解源码(java双击运行)
- javaSe模拟电子商务系统
- 仅1500行的简易Java炸弹人游戏无AI(
- JavaApplication1.rar
- JAVA实现货币转化.rar
- 基于MapXTreme Java的商业WebGIS研究
- java身份证自动识别源码
- 基于Java开发的一款酒店管理系统(完
- jsp+ssm+mysql实现的零食商城系统源码
- Java身份证阅读器(华旭)
- 基于Java开发的免费网络拓扑软件-Su
评论
共有 条评论