亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? paintboard.java

?? 自己課程設計做的 用JAVA的畫板程序
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
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_control].setCommand(Command.LINE);			
			// 為文本域鍵盤設置事件處理器
			canvases[i].addKeyListener(new MyKeyListener());
			canvasScrollPanes[i] = new JScrollPane(canvases[i],
					JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
					JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
			Graphics g=getGraphics();
			canvases[i].paint(g);
		}
		
		
		//初始化顯示當前鼠標位置的文本域
		statusScrollPane = new JScrollPane(statusTextArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
				JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		statusTextArea.setEnabled(false);
		statusTextArea.setFont(font);
		statusTextArea.setBackground(new Color(70, 80, 91));
		statusTextArea.setDisabledTextColor(Color.yellow);

		/**************初始化菜單*************/
		//初始化菜單項
		newMenuItem.addActionListener(new Act_NewFile());
		openMenuItem.addActionListener(new Act_OpenFile());
		saveMenuItem.addActionListener(new Act_SaveFile());
		saveAsMenuItem.addActionListener(new Act_SaveAs());
		exitMenuItem.addActionListener(new Act_ExitEditor());
		helpMenuItem.addActionListener(new Act_Help());
		stopFlashMenuItem.addActionListener(new Act_StopFlash());
		startFlashMenuItem.addActionListener(new Act_StartFlash());
		startFlashMenuItem.setEnabled(false);
		undoMenuItem.addActionListener(new Act_UndoAs());
		redoMenuItem.addActionListener(new Act_Redo()); 
		clearMenuItem.addActionListener(new Act_Clear());
		lineMenuItem.addActionListener(new Act_Line()); 
		rectangleMenuItem.addActionListener(new Act_Rectangle()); 		
		eraserMenuItem.addActionListener(new Act_Eraser()); 
		circleMenuItem.addActionListener(new Act_Circle());
		selectedMenuItem.addActionListener(new Act_Selected()); 
		unSelectedMenuItem.addActionListener(new Act_UnSelected()); 
		deletedMenuItem.addActionListener(new Act_Deleted());
		textInsertyMenuItem.addActionListener(new Act_TextInsert()); 

		viewColorPaletteMenuItem.addActionListener(new Act_Palette()); 
		stopFlashMenuItem.addActionListener(new Act_StopFlash()); 
		startFlashMenuItem.addActionListener(new Act_StartFlash()); 

		
		//初始化菜單
		fileMenu.add(newMenuItem);
		fileMenu.add(openMenuItem);
		fileMenu.add(saveMenuItem);
		fileMenu.add(saveAsMenuItem);	
		fileMenu.add(exitMenuItem);
		fileMenu.add(exitMenuItem);
		
		editMenu.add(undoMenuItem);
		editMenu.add(redoMenuItem);
		editMenu.add(clearMenuItem);
		helpMenu.add(helpMenuItem);

		
		imageMenu.add(lineMenuItem);
		imageMenu.add(circleMenuItem);
		imageMenu.add(rectangleMenuItem);
		imageMenu.add(eraserMenuItem);
		imageMenu.add(selectedMenuItem);
		imageMenu.add(unSelectedMenuItem);
		imageMenu.add(deletedMenuItem);
		imageMenu.add(textInsertyMenuItem);

		viewMenu.add(viewColorPaletteMenuItem);
		viewMenu.add(stopFlashMenuItem);
		viewMenu.add(startFlashMenuItem);
		
		filterMenu.add(reverseColorFilterMenuItem );
		filterMenu.add(rotateFilterMenuItem );
		filterMenu.add(blurFilterMenuItem );
		
		//初始化菜單欄
		menuBar.add(fileMenu);
		menuBar.add(editMenu);
		menuBar.add(imageMenu);
		menuBar.add(viewMenu);	
		menuBar.add(filterMenu);
		menuBar.add(helpMenu);
		//將菜單欄添加到窗體中
		setJMenuBar(menuBar);
		
		/***********初始化工具欄以及按鈕**********/
		//初始化按鈕
		newButton.addActionListener(new Act_NewFile());
		openButton.addActionListener(new Act_OpenFile());
		saveButton.addActionListener(new Act_SaveFile());
		exitButton.addActionListener(new Act_ExitEditor());		
		helpButton.addActionListener(new Act_Help());
		eraserButton.addActionListener(new Act_Eraser());
		textButton.addActionListener(new Act_TextInsert());

		lineButton.addActionListener(new Act_Line());
		circleButton.addActionListener(new Act_Circle());
		rectangleButton.addActionListener(new Act_Rectangle());
		pencilButton.addActionListener(new Act_Pencil());
		selectedButton.addActionListener(new Act_Selected());
		unSelectedButton.addActionListener(new Act_UnSelected());
		deletedButton.addActionListener(new Act_Deleted());
		// 為工具欄設置提示信息,當鼠標在工具欄按鈕上停留一段時間時,會顯示提示信息
		newButton.setToolTipText("New");
		openButton.setToolTipText("Open");
		saveButton.setToolTipText("Save");
		exitButton.setToolTipText("Exit");
		helpButton.setToolTipText("Help");	
		copyButton.setToolTipText("Copy");
		cutButton.setToolTipText("Cut");
		pasteButton.setToolTipText("Paste");
		textButton.setToolTipText("Text");	
		
		/*brushButton.setToolTipText("Brush");
		moveButton.setToolTipText("Move");
		resizeButton.setToolTipText("Resize");
		selectAreaButton.setToolTipText("SelectArea");
		fillButton.setToolTipText("Fill");	*/
		eraserButton.setToolTipText("Eraser");
		lineButton.setToolTipText("Line");
		circleButton.setToolTipText("Circle");
		rectangleButton.setToolTipText("Rectangle");
		pencilButton.setToolTipText("Pencil");
		selectedButton.setToolTipText("Seleted");	
		unSelectedButton.setToolTipText("UnSelected");
		deletedButton.setToolTipText("Deleted");
		toolsGroup.add(textButton);
		/*toolsGroup.add(brushButton);
		toolsGroup.add(moveButton);
		toolsGroup.add(resizeButton);
		
		toolsGroup.add(selectAreaButton);
		toolsGroup.add(fillButton);*/
		toolsGroup.add(eraserButton);
		toolsGroup.add(lineButton);
		toolsGroup.add(circleButton);
		toolsGroup.add(rectangleButton);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人污视频在线观看| 一本一本久久a久久精品综合麻豆| 亚洲国产高清aⅴ视频| 一本高清dvd不卡在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产麻豆视频一区二区| 一区二区三区在线观看国产| 久久久久久97三级| 91精品国产品国语在线不卡| 91免费观看视频在线| 国产毛片精品国产一区二区三区| 污片在线观看一区二区| 成人免费在线视频| 久久精品人人做人人爽人人| 欧美一级久久久久久久大片| 91麻豆福利精品推荐| 国产99久久久国产精品潘金 | 洋洋av久久久久久久一区| 久久综合九色综合欧美98 | 国产视频一区二区在线观看| 在线成人av网站| 色婷婷激情综合| 成人免费三级在线| 国产一区二区调教| 麻豆国产91在线播放| 偷拍与自拍一区| 一区二区三区蜜桃网| 亚洲天天做日日做天天谢日日欢 | 有码一区二区三区| 亚洲视频一二区| 国产精品理伦片| 国产精品久久久久久福利一牛影视 | 久久久激情视频| 精品久久国产字幕高潮| 日韩欧美国产综合在线一区二区三区| 欧美午夜电影一区| 欧洲视频一区二区| 色狠狠色狠狠综合| 在线视频欧美区| 欧美做爰猛烈大尺度电影无法无天| 99re8在线精品视频免费播放| 成人美女视频在线看| 成人不卡免费av| 播五月开心婷婷综合| 97精品国产97久久久久久久久久久久| 成人爱爱电影网址| 91视频在线观看| 欧美日韩中文字幕一区| 欧美欧美午夜aⅴ在线观看| 538在线一区二区精品国产| 91麻豆精品国产91久久久| 宅男在线国产精品| 精品日韩一区二区三区免费视频| 日韩欧美中文字幕精品| 久久久亚洲综合| 欧美国产日韩精品免费观看| 中文字幕日本不卡| 一区二区久久久久久| 日韩电影在线观看电影| 久久激情五月婷婷| 国产不卡一区视频| 色哟哟欧美精品| 欧美丰满少妇xxxxx高潮对白| 欧美一级二级三级蜜桃| 欧美精品一区二区久久婷婷| 日本一区二区三区四区在线视频| 亚洲另类在线视频| 日本伊人色综合网| 国产成人精品免费一区二区| 91麻豆免费视频| 91精品国产色综合久久| 久久久青草青青国产亚洲免观| 国产精品污污网站在线观看| 亚洲综合精品久久| 狠狠色狠狠色综合| 色婷婷综合久久久久中文| 欧美丝袜丝交足nylons图片| 欧美一级黄色片| 国产精品全国免费观看高清| 夜夜嗨av一区二区三区四季av| 老司机一区二区| 99精品一区二区| 91精品视频网| 一区精品在线播放| 毛片av一区二区| 91亚洲精品久久久蜜桃网站| 91精品国产品国语在线不卡| 国产精品久久久久久久午夜片| 午夜精品久久久久久久久久| 高清久久久久久| 欧美一区二区三区视频| 亚洲视频免费在线观看| 久久精品72免费观看| 在线观看日韩国产| 久久亚洲精品国产精品紫薇| 亚洲第一激情av| 成人精品一区二区三区四区| 欧美一区二区三级| 亚洲乱码中文字幕| 国产精品白丝av| 欧美精品国产精品| 亚洲男人的天堂av| 国产乱人伦偷精品视频免下载| 欧美吞精做爰啪啪高潮| 中文字幕一区二区三| 国产综合色在线视频区| 8x福利精品第一导航| 亚洲精品视频在线看| 成人在线一区二区三区| 欧美精品一区二区三区蜜桃视频| 日韩电影在线观看一区| 欧美吞精做爰啪啪高潮| 亚洲免费三区一区二区| 高清不卡一二三区| 久久久久久久综合色一本| 美女视频免费一区| 欧美一区二区性放荡片| 五月婷婷另类国产| 欧美体内she精高潮| 亚洲综合一区二区精品导航| 成人福利视频网站| 欧美国产日韩精品免费观看| 国产精品原创巨作av| 精品国产电影一区二区| 麻豆国产精品777777在线| 69堂成人精品免费视频| 日韩高清不卡一区| 69堂亚洲精品首页| 免费人成精品欧美精品| 3atv在线一区二区三区| 午夜不卡在线视频| 91精品国产免费| 青青草原综合久久大伊人精品优势| 欧美在线观看视频在线| 亚洲一区二区三区精品在线| 在线亚洲精品福利网址导航| 亚洲天堂a在线| 色老汉一区二区三区| 亚洲激情图片qvod| 欧美午夜一区二区| 91久久国产最好的精华液| 亚洲精品一卡二卡| 欧美视频一区二区在线观看| 亚洲无线码一区二区三区| 欧美三级在线播放| 视频一区在线播放| 日韩午夜激情av| 国产在线精品一区二区| 国产欧美一区二区三区沐欲 | 日本女人一区二区三区| 日韩视频免费观看高清完整版| 视频一区二区欧美| 精品国产1区二区| 成人视屏免费看| 亚洲精品国产成人久久av盗摄| 欧美日韩专区在线| 久久精品99国产精品| 亚洲国产精品精华液ab| 91国内精品野花午夜精品| 日韩有码一区二区三区| 久久综合九色综合欧美亚洲| 成人av电影在线| 亚洲观看高清完整版在线观看| 91精品国产免费久久综合| 国产精品91xxx| 亚洲免费观看高清完整版在线 | 精品国产乱码久久久久久夜甘婷婷 | 欧美激情在线看| 欧洲一区二区三区免费视频| 全国精品久久少妇| 国产喷白浆一区二区三区| 欧洲精品在线观看| 久久精品免费观看| 亚洲欧洲国产日本综合| 欧美喷水一区二区| 国产精品99久久久久久有的能看| 日韩美女久久久| 日韩精品一区二区三区中文精品| 成人国产精品免费观看视频| 亚洲成人综合视频| 国产亚洲精品中文字幕| 欧美日韩一区视频| 粉嫩av亚洲一区二区图片| 亚洲成人第一页| 国产午夜亚洲精品羞羞网站| 欧美日韩中文精品| 成人午夜又粗又硬又大| 日本美女一区二区三区| 中文字幕在线不卡国产视频| 91精品国产色综合久久不卡蜜臀| 不卡视频在线观看| 麻豆成人91精品二区三区| 日韩毛片一二三区| 国产视频视频一区| 欧美日韩国产美女| av在线不卡网| 国内精品伊人久久久久av影院 | 日韩欧美高清在线| 欧美日韩日本视频| 99精品久久99久久久久|