package main;
/*
软件作者: 熊锡君,时守刚
软件版权归作者所有,其他人可以对软件进行修改,可以使用软件代码,(按类使用请保留作者信息)
*/
import Painter.Command;
import Painter.ImageToJpeg;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.Timer;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileFilter;
public class PaintBoard extends JFrame{
private JFileChooser filechooser1;
private JFileChooser filechooser2;
/********菜单栏、菜单和菜单项*********/
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenu editMenu = new JMenu("编辑");
JMenu imageMenu = new JMenu("图像");
JMenu viewMenu = new JMenu("查看");
JMenu filterMenu = new JMenu("滤镜");
JMenu helpMenu = new JMenu("帮助");
JMenuItem newMenuItem = new JMenuItem("新建");
JMenuItem openMenuItem = new JMenuItem("打开");
JMenuItem saveMenuItem = new JMenuItem("保存");
JMenuItem saveAsMenuItem = new JMenuItem("另存为JPG");
JMenuItem closeMenuItem = new JMenuItem("关闭");
JMenuItem exitMenuItem = new JMenuItem("退出");
JMenuItem undoMenuItem = new JMenuItem("撤销");
JMenuItem redoMenuItem = new JMenuItem("恢复");
JMenuItem cutMenuItem = new JMenuItem("剪切");
JMenuItem copyMenuItem = new JMenuItem("复制");
JMenuItem pasteMenuItem = new JMenuItem("粘贴");
JMenuItem clearMenuItem = new JMenuItem("清除");
JMenuItem selectAllMenuItem = new JMenuItem("全选");
JMenuItem lineMenuItem = new JMenuItem("直线");
JMenuItem circleMenuItem = new JMenuItem("圆");
JMenuItem ovalMenuItem = new JMenuItem("椭圆");
JMenuItem undodMenuItem = new JMenuItem("圆弧");
JMenuItem rectangleMenuItem = new JMenuItem("矩形");
JMenuItem eraserMenuItem = new JMenuItem("橡皮");
JMenuItem selectedMenuItem = new JMenuItem("选中");
JMenuItem unSelectedMenuItem = new JMenuItem("撤消选中");
JMenuItem deletedMenuItem = new JMenuItem("删除");
JMenuItem textInsertyMenuItem = new JMenuItem("文本插入");
JMenuItem viewToolBarMenuItem = new JMenuItem("工具箱");
JMenuItem viewColorPaletteMenuItem = new JMenuItem("调色板");
JMenuItem viewStatusBarMenuItem = new JMenuItem("状态栏");
JMenuItem stopFlashMenuItem = new JMenuItem("停止Flash");
JMenuItem startFlashMenuItem = new JMenuItem("开始Flash");
JMenuItem reverseColorFilterMenuItem = new JMenuItem("反色");
JMenuItem rotateFilterMenuItem = new JMenuItem("旋转");
JMenuItem blurFilterMenuItem = new JMenuItem("模糊");
JMenuItem helpMenuItem = new JMenuItem("Help");
/********画布****/
//用多个画布存放多个图形文件,放在JScrollPane里
//而JScrollPane放在JTabbedPane中,这就是一个多页面的布局
//多个画布,每个画布显示一个图形
MyCanvas[] canvases = new MyCanvas[10];
//显示鼠标位置和当前绘制图形的状态栏
JTextArea statusTextArea = new JTextArea();
JScrollPane[] canvasScrollPanes = new JScrollPane[10];
JScrollPane statusScrollPane;
//多个文本域放在不同tab里
JTabbedPane canvasTabbedPane = new JTabbedPane();
//画布属性
int x = -1, y = -1, eraser, clear;
Color pencilColor;
/**********工具栏以及工具栏上的按钮**********/
JToolBar editToolBar = new JToolBar();
GridBagConstraints gridBagConstraints = new GridBagConstraints();;
JPanel ctrlPanel = new JPanel();
JPanel imageToolBar = new JPanel();
JPanel colorPanel = new JPanel();
JPanel sizePanel = new JPanel();
JPanel savePanel = new JPanel();
JLabel copyleft = new JLabel();
JPanel mediumPanel1 = new JPanel();
JPanel brColorPanel = new JPanel();
ButtonGroup toolsGroup = new ButtonGroup();
JButton fgButton = new JButton();
JButton bgButton = new JButton();
JButton brButton = new JButton();
JComboBox weightCombo = new JComboBox();
JComboBox eraserCombo = new JComboBox();
JRadioButton filledButton = new JRadioButton("Fill",false);
JRadioButton emptyButton = new JRadioButton("Empty",true);
JPanel fillPanel = new JPanel();
boolean fill = false;
JButton openButton = new JButton(new ImageIcon(loadImage("image/open.gif")));
JButton newButton = new JButton(new ImageIcon(loadImage("image/new.gif")));
JButton saveButton = new JButton(new ImageIcon(loadImage("image/save.gif")));
JButton helpButton = new JButton(new ImageIcon(loadImage("image/help.gif")));
JButton exitButton = new JButton(new ImageIcon(loadImage("image/close.gif")));
JButton copyButton = new JButton(new ImageIcon(loadImage("image/copy.gif")));
JButton cutButton = new JButton(new ImageIcon(loadImage("image/cut.gif")));
JButton pasteButton = new JButton(new ImageIcon(loadImage("image/paste.gif")));
JToggleButton textButton = new JToggleButton(new ImageIcon(loadImage("image/TextTool.png")));
JToggleButton eraserButton = new JToggleButton(new ImageIcon(loadImage("image/EraserTool.png")));
JToggleButton lineButton = new JToggleButton(new ImageIcon(loadImage("image/LineTool.gif ")));
JToggleButton circleButton = new JToggleButton(new ImageIcon(loadImage("image/CircleTool.png")));
JToggleButton rectangleButton = new JToggleButton(new ImageIcon(loadImage("image/RectangleTool.gif")));
JToggleButton pencilButton = new JToggleButton(new ImageIcon(loadImage("image/PencilTool.gif")));
JToggleButton selectedButton = new JToggleButton(new ImageIcon(loadImage("image/SelectAreaTool.png")));
JToggleButton unSelectedButton = new JToggleButton(new ImageIcon(loadImage("image/4.GIF")));
JToggleButton deletedButton = new JToggleButton(new ImageIcon(loadImage("image/3.GIF")));
//该文本域显示当前光标在当前 画板中的坐标及画图状态
JTextArea showStatus = new JTextArea();
//对话框窗体,程序中所有对话框都显示在该窗体中
JFrame dialogFrame = new JFrame();
/*******组件之间的分隔栏******/
JSplitPane leftCenterSplitPane;
JSplitPane toolFlashSplitPane;
JSplitPane tabbedStatusSplitPane;
/**********文件选择、存储相关********/
//文件过滤器
Filter fileFilter = new Filter();
//文件选择器
//FileChooser fileChooser = new FileChooser();
// 文件读写控制,0表示文件选择器读文件,1文件选择器标示写文件
int fileChooser_control = 0;
FileWriter fileWriter;
// tabbedPane中tab页的当前数量
int tb = 1;
int find_control = 0;
//画板的控制器,指向当前操作的画板
int canvas_control = 0;
//当前画板的图形
Image currentImageInCanvas;
//标志文件是否为新建的,如果是新建的文件,为true
boolean[] newFileFlags = new boolean[10];
//存放打开文件所在的目录
String[] directory = new String[10];
/********用于显示Flash的控制器****/
JLabel flashLabel = new JLabel(new ImageIcon(loadImage("image/Juggler0.gif")));
Timer timer = new Timer(100, new Act_timer());
int timerControl = 0;
/********帮助相关****/
Font font = new Font("Courier", Font.TRUETYPE_FONT, 14);
JTextArea helpTextArea = new JTextArea();
JFrame helpFrame = new JFrame("Help");
public PaintBoard(){
super("画板");
SplashWindow splash = new SplashWindow("jtable.gif", this, 1000);
//为窗体添加键盘事件处理器
//下面这一行非常重要,表示窗体能够接受焦点。
//如果没有这一句,按键盘会无效。
this.setFocusable(true);
this.addKeyListener(new MyKeyListener());
//为窗体添加窗口事件处理器
this.addWindowListener(new WindowListener());
//初始化
init();
//setLocation(200, 200);
this.setBounds(140, 140, 1000, 1200);
setVisible(true);
pack();
//初始时启动动画
timer.start();
canvases[canvas_control].setCommand(Command.LINE);
}
private void init(){
/*******初始化画板、目录*********/
for(int i=0; i<10; i++){
newFileFlags[i] = true;
//设置画板的背景和前景颜色
canvases[i] = new MyCanvas(statusTextArea, this);
canvases[i].setBackground(Color.WHITE);
canvases[i].setForeground(Color.BLACK);
// 设置初始的命令为画线,将被选中的命令按钮的前景色用红色标示
lineButton.setForeground(Color.red);
canvases[canvas_contro
没有合适的资源?快使用搜索试试~ 我知道了~
基于JAVA的画板程序
共193个文件
gif:71个
class:60个
png:40个
需积分: 9 32 下载量 137 浏览量
2008-10-17
16:03:23
上传
评论
收藏 339KB RAR 举报
温馨提示
课程设计自己做的,基于JAVA的画板程序
资源推荐
资源详情
资源评论
收起资源包目录
基于JAVA的画板程序 (193个子文件)
PaintBoard.class 22KB
MyCanvas.class 12KB
NwFontChooserS.class 5KB
CusString.class 3KB
PaintBoard$Act_SaveFile.class 3KB
Rectangle.class 3KB
PaintBoard$Act_OpenFile.class 3KB
PaintBoard$Act_SaveAs.class 3KB
TextInput.class 3KB
NwFontChooserS$NwList.class 2KB
Circle.class 2KB
Line.class 2KB
Shape.class 2KB
SplashWindow.class 2KB
Pencil.class 2KB
PointsSet.class 1KB
PaintBoard$Act_Rectangle.class 1KB
PaintBoard$Act_Circle.class 1KB
PaintBoard$Act_Line.class 1KB
PaintBoard$Act_timer.class 1KB
PaintBoard$Act_Palette.class 1KB
PaintBoard$Act_NewFile.class 1KB
PaintBoard$Item_FillChanged.class 1KB
PaintBoard$Act_Pencil.class 1KB
NwFontChooserS$1.class 1KB
PaintBoard$MyKeyListener.class 1KB
Eraser.class 1KB
ImageToJpeg.class 998B
TextInput$4.class 936B
PaintBoard$Act_StartFlash.class 923B
PaintBoard$Act_StopFlash.class 918B
PaintBoard$Act_Eraser.class 915B
SplashWindow$3.class 902B
PaintBoard$Act_Help.class 868B
PaintBoard$Filter.class 867B
PaintBoard$Act_UnSelected.class 844B
PaintBoard$Act_Deleted.class 830B
PaintBoard$1.class 829B
PaintBoard$Act_ChangeTab.class 824B
PaintBoard$Act_TextInsert.class 797B
PaintBoard$Act_Selected.class 786B
PaintBoard$Act_UndoAs.class 769B
PaintBoard$Act_Clear.class 768B
PaintBoard$Act_Redo.class 764B
TextInput$2.class 751B
NwFontChooserS$3.class 706B
PaintBoard$WindowListener.class 706B
NwFontChooserS$4.class 706B
PaintBoard$6.class 696B
PaintBoard$5.class 696B
PaintBoard$2.class 695B
PaintBoard$4.class 695B
PaintBoard$3.class 695B
PaintBoard$Act_ExitEditor.class 684B
TextInput$3.class 678B
SplashWindow$1.class 663B
NwFontChooserS$2.class 648B
TextInput$1.class 618B
SplashWindow$2.class 592B
Command.class 430B
.classpath 232B
Thumbs.db 39KB
Thumbs.db 39KB
jtable.GIF 19KB
jtable.gif 19KB
jtable.gif 19KB
jtable.GIF 19KB
jtable.GIF 19KB
Juggler3.gif 3KB
Juggler3.gif 3KB
Juggler2.gif 3KB
Juggler2.gif 3KB
Juggler0.gif 3KB
Juggler1.gif 3KB
Juggler0.gif 3KB
Juggler1.gif 3KB
Juggler4.gif 3KB
Juggler4.gif 3KB
duke.gif 2KB
duke.gif 2KB
build.gif 1KB
build.gif 1KB
close.gif 1KB
close.gif 1KB
copy.gif 1KB
copy.gif 1KB
copy1.gif 986B
copy1.gif 986B
ZoomTool.gif 962B
ZoomTool.gif 962B
3.GIF 878B
3.GIF 878B
4.GIF 860B
4.GIF 860B
new.gif 732B
new.gif 732B
compile.gif 683B
compile.gif 683B
paste.gif 613B
paste.gif 613B
共 193 条
- 1
- 2
资源评论
shishougang
- 粉丝: 16
- 资源: 72
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功