⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mypaint.java

📁 Java画板
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
//MyPaint.java
package test.paint;  // 自定义包

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.undo.*;
import java.io.*;
import java.awt.image.*;
import javax.swing.border.*;
import javax.swing.filechooser.FileFilter;
import java.io.File;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import javax.imageio.*;
import javax.swing.filechooser.*;
import java.util.ArrayList;


/**
 * MyPaint类,继承JFrame类,
 * 作者:曾燕秋
 *  初始时间:2007 5-17
 * 最后一次修改时间:2007 6-17
 */
public class MyPaint extends JFrame {

	 /**
	 * 作者:钟雯
	 * 实现文件及图片的读写功能、导出功能
	 *  初始时间:2007 5-20
	 * 最后一次修改时间:2007 6-13
	 */
	
	//存取格式为zzw的文件
	private FileFilter myFilter = new FileFilter() {
        public boolean accept(File f) {
            
            if (f.getName().endsWith(".zzw"))
                return true;
            
            if (f.isDirectory())
                return true;
            
            return false;
        }
        
        public String getDescription() {
            return "ZZW Files (*.zzw)";
        }
    };
    
    //导出为png格式的文件格式
    private FileFilter secondFilter = new FileFilter() {
        public boolean accept(File f) {
           
            if (f.getName().endsWith(".png"))
                return true;
            
            if (f.isDirectory())
                return true;
            
            return false;
        }
        
        public String getDescription() {
            return "PNG image files (*.png)";
        }
    };
    
    private FileFilter jpgFilter = new FileFilter() {
        public boolean accept(File f) {
            
            if (f.getName().endsWith(".jpg"))
                return true;
            
            if (f.isDirectory())
                return true;
            
            return false;
        }
        public String getDescription() {
            return "JPG image files (*.jpg)";
        }
    };
    
    
	private String styleNames[] = {
			"宋体", "隶书", "华文彩云", "仿宋_GB2312", "华文行楷", 
			"方正舒体", "Times New Roman", "Serif", "Monospaced",
			"SonsSerif","Garamond"
	        };
	
	private String sizes[] = { "8", "9", "10", "11", "12", "14", "16",
			"18", "20", "22", "24", "26" };
	
	private String style1;
	private int x1, x2, number;   //用来存放当前字体风格
	
	private JMenuBar   menuBar;
	private JMenu      fileMenu;
	private JMenu      editMenu;
	private JMenu      imageMenu;
	private JMenu      colorMenu;
	private JMenu      helpMenu;
	
	private JMenuItem  newItem;
	private JMenuItem  openItem;
	private JMenuItem  saveItem;
	private JMenuItem  emportItem;
	private JMenuItem  exitItem;
	private JMenuItem  undoItem;
	private JMenuItem  redoItem;
	private JMenuItem  clearItem;
	private JMenuItem  foregroundItem;
	private JMenuItem  backgroundItem;
	private JMenuItem  aboutItem;
	 
	 
	
	private ButtonGroup   toolsGroup;
	
	private JPanel     ctrlPanel;
	private JPanel     mediumPanel1;
	private JPanel     toolsPanel;
	private JPanel     mediumPanel2;
	private JPanel     wordPanel;
	private JPanel     mediumPanel3;
	private JPanel     fontPanel;
	private JPanel     sizePanel;
	private JPanel     mediumPanel4;
	private JPanel     modelPanel;
	private JPanel     mediumPanel5;
	private JPanel     mediumPanel6;
	private JPanel     brushPanel;
	private JPanel     circlePanel;
	private JPanel     squarePanel;
	
	
	
	private JToggleButton   lineButton;
	private JToggleButton   rectButton;
	private JToggleButton   ovalButton;
	private JToggleButton   diamondButton;
	private JToggleButton   roundrectButton;
	private JToggleButton   pencilButton;
	private JToggleButton   eraserButton;
	private JToggleButton   polygonButton;
	private JToggleButton   brushButton;
	private JToggleButton   wordButton;
	private JToggleButton   fillButton;
	private JToggleButton   model1Button;
	private JToggleButton   model2Button;
	private JToggleButton   model3Button;
	private JToggleButton   brush0Button;
	private JToggleButton   brush1Button;
	private JToggleButton   brush2Button;
	private JToggleButton   brush3Button;
	private JToggleButton   brush4Button;
	private JToggleButton   brush5Button;
	
	private JCheckBox   bold;
	private JCheckBox   italic;
	
	private JComboBox   stylescombo;
	private JComboBox   sizecombo;
	private JComboBox   erasercombo;
	private JComboBox   weightcombo;
	
	private JLabel      copyleft;
	private JLabel      state;
	
	private MyPanel     drawPanel;             //绘图区画板
	private JScrollPane  scrollpanel;
	
	private JFileChooser filechooser1, filechooser2 ;
	Image drawimage = ImageSource.imgDrawpane;
	
	public MyPaint() 
	{
		
		try
		{
			initComponents();  
		}
		catch( Exception e ){
			e.printStackTrace();
		}
		
	}
	/**
	 * 设置各个控件
	 * @throws Exception
	 */
	private void initComponents() throws Exception{
	
		 GridBagConstraints gridBagConstraints;
		 
		     menuBar = new JMenuBar();
		     fileMenu = new JMenu();
		     editMenu = new JMenu();
		     imageMenu = new JMenu();
		     colorMenu = new JMenu();
		     helpMenu = new JMenu();
		     
		     newItem = new JMenuItem();
		     openItem = new JMenuItem();
		     saveItem = new JMenuItem();
		     emportItem = new JMenuItem();
		     exitItem = new JMenuItem();
		     undoItem = new JMenuItem();
			 redoItem = new JMenuItem();
			 clearItem = new JMenuItem();
			 foregroundItem = new JMenuItem();
			 backgroundItem = new JMenuItem();
			 aboutItem = new JMenuItem();
			 
			 toolsGroup = new ButtonGroup();
			 
			 ctrlPanel = new JPanel();
			 mediumPanel1 = new JPanel();
			 toolsPanel = new JPanel();
			 mediumPanel2 = new JPanel();
			 wordPanel = new JPanel();
			 mediumPanel3 = new JPanel();
			 fontPanel = new JPanel();
			 sizePanel = new JPanel();
			 mediumPanel4 = new JPanel();
			 modelPanel = new JPanel();
			 mediumPanel5 = new JPanel();
			 mediumPanel6 = new JPanel();
			 brushPanel = new JPanel();
			 circlePanel = new JPanel();
			 squarePanel = new JPanel();
			
			 lineButton = new JToggleButton();
			 rectButton = new JToggleButton();
			 ovalButton = new JToggleButton();
			 diamondButton = new JToggleButton();
			 roundrectButton = new JToggleButton();
			 pencilButton = new JToggleButton();
			 eraserButton = new JToggleButton();
			 polygonButton = new JToggleButton();
			 brushButton = new JToggleButton();
			 fillButton =new JToggleButton();
			 wordButton = new JToggleButton();
			 model1Button = new JToggleButton();
			 model2Button = new JToggleButton();
			 model3Button = new JToggleButton();
			 brush0Button = new JToggleButton();
			 brush1Button = new JToggleButton();
			 brush2Button = new JToggleButton();
			 brush3Button = new JToggleButton();
			 brush4Button = new JToggleButton();
			 brush5Button = new JToggleButton();
			 
			 bold = new JCheckBox();
			 italic = new JCheckBox();
			 
			 stylescombo = new JComboBox();
			 sizecombo = new JComboBox();
			 erasercombo = new JComboBox();
			 weightcombo = new JComboBox();
			 
			 copyleft = new JLabel();
			 state = new JLabel();
			 
			 
			  // 声明相关图片
			  
			 Image drawimage = ImageSource.imgDrawpane;
			 ImageIcon pencilicon = new ImageIcon( ImageSource.imgPencil );
			 ImageIcon polygonicon = new ImageIcon( ImageSource.imgPolygon );
			 ImageIcon brushicon = new ImageIcon( ImageSource.imgBrush );
			 ImageIcon fillicon = new ImageIcon( ImageSource.imgFill );
			 ImageIcon arcicon = new ImageIcon ( ImageSource.imgArc );
			 ImageIcon wordicon = new ImageIcon ( ImageSource.imgWord );
			 ImageIcon model1icon = new ImageIcon ( ImageSource.imgModel1 );
			 ImageIcon model2icon = new ImageIcon ( ImageSource.imgModel2 );
			 ImageIcon model3icon = new ImageIcon ( ImageSource.imgModel3 );
			 ImageIcon circle1icon = new ImageIcon ( ImageSource.imgCircle1 );
			 ImageIcon circle2icon = new ImageIcon ( ImageSource.imgCircle2 );
			 ImageIcon circle3icon = new ImageIcon ( ImageSource.imgCircle3 );
			 ImageIcon square1icon = new ImageIcon ( ImageSource.imgSquare1 );
			 ImageIcon square2icon = new ImageIcon ( ImageSource.imgSquare2 );
			 ImageIcon square3icon = new ImageIcon ( ImageSource.imgSquare3 );
			 
			 JScrollPane scrollpanel = new JScrollPane();
			 drawPanel = new MyPanel();
		

		this.setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE );
		
		 // 将窗口标题设置为Our DrawPanel"
		 
		this.setTitle( "Our DrawPanel" );
		
		 //为窗口设置图片
		 
		this.setIconImage( drawimage );
		
		state.setHorizontalAlignment(SwingConstants.RIGHT);
		state.setHorizontalTextPosition(SwingConstants.LEFT);
		state.setText("在画布上选取图形对象(鼠标单击选取,拖拽移动)");
		state.setVerticalAlignment(javax.swing.SwingConstants.CENTER);
		state.setVerticalTextPosition(javax.swing.SwingConstants.CENTER);
	    
		menuBar = new JMenuBar();
		
		
		 
		/**
		 * 作者:钟雯
		 * 文件的菜单实现
		 *  初始时间:2007 5-20
		 * 最后一次修改时间:2007 6-13
		 */
		
		// 定义文件菜单
		
		
		fileMenu = new JMenu( "文件(F)" );
		
		
		 // 定义文件菜单下的相关项目
 
		
		
		
		 // 定义新建菜单项,并设置快捷键为'N'
		 
	    newItem = new JMenuItem( "新建(N)", 'N');
		
		 //定义打开菜单项,并设置快捷键为"O"
		 
		openItem = new JMenuItem( "打开(O)", 'O' );
		
		
		 // 定义保存菜单项,并设置快捷键为"S"
		 
		saveItem = new JMenuItem( "保存(S)", 'S' );
		
		
		 //定义退出菜单,并设置快捷键为"X"
		 
		exitItem = new JMenuItem( "退出(X)", 'X');
		
       
        //定义导出菜单项,并设置快捷键为"E"
        
		emportItem = new JMenuItem( "导出(E)为*.png", 'E');
		
		
		 //设置新建菜单项的加速器为Ctrl+N
		 
		newItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_N, InputEvent.CTRL_MASK ) );
		
		
		  //设置打开菜单项的加速器为Ctrl + O
		
		openItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_O, InputEvent.CTRL_MASK ) );
		
		
		 // 设置保存菜单项的加速器为Ctrl + S
		 
		saveItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_S, InputEvent.CTRL_MASK )
				);
      
        // 设置保存菜单项的加速器为Ctrl + E
        
		emportItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_E, InputEvent.CTRL_MASK ) );
		
		
		 // 设置退出菜单项的加速器为Ctrl + X
		 
		exitItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_X, InputEvent.CTRL_MASK ) );
		
       /**
        * 新建菜单项事件的监听器,用于新建文件
        */
		newItem.addActionListener(
				new ActionListener(){
					public void actionPerformed( ActionEvent e)
					{
						newButtonActionPerformed(e);
					}
				}
			);
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -