package MiniDrawPad;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class MiniDrawPad extends JFrame //主类,扩展了JFrame类,用来生成主界面
{
private ObjectInputStream input;
private ObjectOutputStream output; //定义输入输出流,用来调用和保存图像文件
private JButton choices[]; //按钮数组,存放以下名称的功能按钮
private String names[]={"","","","Pencil","Line", "Rect", "fRect","Oval", "fOval","Circle","fCircle", "RoundRect",
"frRect","Rubber","Color", "Stroke","Word" /*画图板上面有的基本的几个绘图单元按钮*/
};
private String styleNames[]={
" 宋体 " , " 隶书 " , " 华文彩云 " , " 仿宋_GB2312 " , " 华文行楷 " ,
" 方正舒体 " , " Times New Roman " , " Serif " , " Monospaced " ,
" SonsSerif " , " Garamond "
}; //可供选择的字体项
//当然这里的灵活的结构可以让读者自己随意添加系统支持的字体
private Icon items[];
private String tipText[]={
//这里是鼠标移动到相应按钮上面上停留时给出的提示说明条
//读者可以参照上面的按钮定义对照着理解
"Draw a new picture",
"Open a saved picture",
"Save current drawing",
"用铅笔随心画",
"画一条直线",
"画空心的矩形",
"画一个用当前颜色填充的矩形",
"画一个空心椭圆",
"画一个用当前颜色填充的椭圆",
"画一个圆",
"画一个带填充色的圆",
"画一个圆角矩形",
"画一个带填充色的圆角矩形",
"橡皮擦工具",
"选择当前绘画的颜色",
"设置线条的粗细",
"在鼠标点击位置输入文字"
};
Icon wei=new ImageIcon("wang.gif") ;//介绍我的
Icon icon=new ImageIcon("mm.gif") ;//说明的ICON
Icon icon1=new ImageIcon("nn.gif") ;//输入文字的ICON
JToolBar buttonPanel ; //定义按钮面板
private JLabel statusBar; //显示鼠标状态的提示条
private DrawPanel drawingArea; //画图区域
private int width=840,height=550; //定义画图区域初始大小
drawings[] itemList=new drawings[5000]; //用来存放基本图形的数组
private int currentChoice=3; //设置默认画图状态为随笔画
int index=0; //当前已经绘制的图形数目
private Color color=Color.black; //当前画笔颜色
int R,G,B; //用来存放当前色彩值
int f1,f2; //用来存放当前字体风格
String style1; //用来存放当前字体
private float stroke=1.0f; //设置画笔粗细,默认值为1.0f
JCheckBox bold,italic; //定义字体风格选择框
//bold为粗体,italic为斜体,二者可以同时使用
JComboBox styles;
public MiniDrawPad() //构造函数
{
super("画板测试版 1.00");
JMenuBar bar=new JMenuBar(); //定义菜单条
JMenu fileMenu=new JMenu("文件");
fileMenu.setMnemonic('F');
//新建文件菜单条
JMenuItem newItem=new JMenuItem("新建");
newItem.setMnemonic('N');
newItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
newFile(); //如果被触发,则调用新建文件函数段
}
}
);
fileMenu.add(newItem);
//保存文件菜单项
JMenuItem saveItem=new JMenuItem("保存");
saveItem.setMnemonic('S');
saveItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
saveFile(); //如果被触发,则调用保存文件函数段
}
}
);
fileMenu.add(saveItem);
//打开文件菜单项
JMenuItem loadItem=new JMenuItem("打开");
loadItem.setMnemonic('L');
loadItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
loadFile(); //如果被触发,则调用打开文件函数段
}
}
);
fileMenu.add(loadItem);
fileMenu.addSeparator();
//退出菜单项
JMenuItem exitItem=new JMenuItem("退出");
exitItem.setMnemonic('X');
exitItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.exit(0); //如果被触发,则退出画图板程序
}
}
);
fileMenu.add(exitItem);
bar.add(fileMenu);
/*设置颜色菜单条
JMenu colorMenu=new JMenu("颜色");
colorMenu.setMnemonic('C');
//选择颜色菜单项
JMenuItem colorItem=new JMenuItem("选择颜色");
colorItem.setMnemonic('O');
colorItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
chooseColor(); //如果被触发,则调用选择颜色函数段
}
}
);
colorMenu.add(colorItem);
bar.add(colorMenu);
//设置线条粗细菜单条
JMenu strokeMenu=new JMenu("粗细");
strokeMenu.setMnemonic('S');
//设置线条粗细菜单项
JMenuItem strokeItem=new JMenuItem("增加粗度");
strokeItem.setMnemonic('K');
strokeItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
setStroke();
}
}
);
strokeMenu.add(strokeItem);
bar.add(strokeMenu);*/
//设置提示菜单条
JMenu helpMenu=new JMenu("帮助");
helpMenu.setMnemonic('H');
//设置提示菜单项
JMenuItem aboutItem=new JMenuItem("关于mini画板!");
aboutItem.setMnemonic('A');
aboutItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,
"您现在使用的是王伟开发的画板 1.00测试版\n华东交通大学05软件工程多媒体3班\nQQ:554684729",
" 画板开发介绍",
JOptionPane.INFORMATION_MESSAGE ,wei);
}
}
);
helpMenu.add(aboutItem);
//设置帮助主题
JMenuItem howItem=new JMenuItem("帮助主题");
howItem.setMnemonic('W');
howItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,
"可以使用它打开已保存的图像文件\n也可以将画的图像保存起来\n该画板的使用比较简单,用它可以画出各种\n基本的图形,不足之处望指出,以待改进!",
" 画板使用介绍",
JOptionPane.INFORMATION_MESSAGE ,icon);
}
}
);
helpMenu.add(howItem);
bar.add(helpMenu);
items=new ImageIcon[names.length];
//创建各种基本图形的按钮
drawingArea=new DrawPanel();
choices=new JButton[names.length];
buttonPanel = new JToolBar( JToolBar.VERTICAL ) ;
buttonPanel = new JToolBar( JToolBar.HORIZONTAL) ;
ButtonHandler handler=new ButtonHandler();
ButtonHandler1 handler1=new ButtonHandler1();
//导入我们需要的图形图标,这些图标都存放在与源文件相同的目录下面
for(int i=3;i<choices.length;i++)
{//items[i]=new ImageIcon( MiniDrawPad.class.getResource(names[i] +".gif"));
//如果在jbuilder下运行本程序,则应该用这条语句导入图片
items[i]=new ImageIcon(names[i] + ".gif");
//默认的在jdk或者jcreator下运行,用此语句导入图片
choices[i]=new JButton("",items[i]);
没有合适的资源?快使用搜索试试~ 我知道了~
绘图JAVA
共51个文件
class:33个
gif:17个
java:1个
5星 · 超过95%的资源 需积分: 0 164 下载量 41 浏览量
2008-01-13
00:23:51
上传
评论 1
收藏 51KB RAR 举报
温馨提示
JAVA 绘图 的小型系统
资源详情
资源评论
资源推荐
收起资源包目录
MiniDrawPad.rar (51个子文件)
MiniDrawPad
Rect.gif 1KB
fCircle.gif 1KB
Rubber.gif 1KB
wang.gif 3KB
frRect.gif 1KB
fRect.gif 1KB
Word.gif 1KB
Oval.gif 1KB
Color.gif 1KB
Circle.gif 1KB
Line.gif 1KB
MiniDrawPad
MiniDrawPad$4.class 574B
Circle.class 848B
fillCircle.class 852B
drawings.class 481B
MiniDrawPad$5.class 865B
fillOval.class 804B
MiniDrawPad$11.class 553B
Rubber.class 672B
Pencil.class 709B
MiniDrawPad$DrawPanel.class 1KB
MiniDrawPad$7.class 765B
MiniDrawPad$mouseB.class 2KB
Word.class 805B
MiniDrawPad$13.class 490B
MiniDrawPad$9.class 489B
MiniDrawPad.class 11KB
MiniDrawPad$3.class 552B
MiniDrawPad$10.class 490B
MiniDrawPad$ButtonHandler.class 887B
MiniDrawPad$checkBoxHandler.class 1018B
Rect.class 800B
Oval.class 800B
MiniDrawPad$6.class 947B
MiniDrawPad$1.class 551B
MiniDrawPad$8.class 489B
MiniDrawPad$12.class 766B
fillRoundRect.class 820B
MiniDrawPad$2.class 552B
Line.class 707B
RoundRect.class 816B
MiniDrawPad$ButtonHandler1.class 1KB
MiniDrawPad$mouseA.class 3KB
fillRect.class 804B
MiniDrawPad.java 24KB
mm.gif 2KB
Stroke.gif 1KB
Pencil.gif 1KB
nn.gif 2KB
RoundRect.gif 1KB
fOval.gif 1KB
共 51 条
- 1
琨景服务
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MI4407-VB一款SOP8封装P-Channel场效应MOS管
- java实验2.doc
- opencv-基于c++实现的opencv图像处理算法之区域生长分割算法.zip
- MI3475-VB一款SOT23封装P-Channel场效应MOS管
- Fortran语言教程&案例&相关项目资源
- Labview 互斥按钮
- java小说人物分析.doc
- opencv-基于c++实现的opencv图像处理算法之双线性插值算法.zip
- 《STM32单片机+DHT11温湿度+MQ甲醛浓度+BH1750光照强度+按键+OLED屏幕+蜂鸣器+继电器》源代码
- python爬虫基础知识原理及Scrapy框架以及scrapy-redis分布式策略入门知识.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论4