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

📄 mypaint.java

📁 Java画板
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
		/**
		 * 打开菜单项事件的监听器,用于打开文件
		 * 
		 */
		openItem.addActionListener(
		    new ActionListener() {
		    	public void actionPerformed( ActionEvent e )
		    	{
		    		
		    		 loadButtonActionPerformed(e);
		    	}
		    }
		);
		
	   /**
	    * 保存菜单项事件监听器,用于保存文件
	    */
		saveItem.addActionListener(
		   new ActionListener() {
			   public void actionPerformed( ActionEvent e )
			   {
				   saveButtonActionPerformed(e);
			   }
		   }
		);
		
		/**
		 * 导出菜单项事件监听器,用于导出文件
		 * 
		 */
		emportItem.addActionListener(
				new ActionListener(){
					public void actionPerformed( ActionEvent e )
					{
						emportButtonAciontPerformed(e);
					}
				}
		);
		/**
		 * 退出菜单项事件监听器,退出应用程序
		 */
		exitItem.addActionListener(
		   new ActionListener() {
			   public void actionPerformed( ActionEvent e )
			   {
				   System.exit( 0 );
			   }
		   }
		);
		
		
		 // 定义编辑菜单
		 
		editMenu = new JMenu( "编辑(E)" );
		
		
		 // 定义编辑菜单下的相关项目
		  
		 
		
		 // 定义撤消菜单项,并设置快捷键为"U"
		 
		undoItem = new JMenuItem( "撤消(U)",'U' );
		
		
		 // 定义重复菜单项,并设置快捷键为'R'
		 
		redoItem = new JMenuItem( "重复(R)",'R' );
		
		
		 // 设置撤消菜单项的加速器为Ctrl+Z
		 
		undoItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_Z, InputEvent.CTRL_MASK, false ) );
		
		
		 // 设置重复菜单项的加速器为Ctrl+Y
		 
		redoItem.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_Y, InputEvent.CTRL_MASK, false ) );
		
		/**
		 * 撤消菜单项事件监听器,撤消已操作的动作,进行任何操作时,撤消菜单项为false
		 */
		undoItem.setEnabled( false );
		undoItem.addActionListener(
		   new ActionListener() {
			   public void actionPerformed( ActionEvent e )
			   {
				   if( drawPanel.canUnDo())
				   {
					   drawPanel.unDo();
				   }
				   else 
					   {
					   undoItem.setEnabled( false );
					   redoItem.setEnabled( true );
					   }
			   }
			   
		   }
		);
		
		/**
		 * 重复菜单项事件监听器,取消刚才撤消操作,在进行任何操作时,重复菜单项为false
		 */
		redoItem.setEnabled( false );
		redoItem.addActionListener(
		   new ActionListener() {
			   public void actionPerformed( ActionEvent e )
			   {
				   if( drawPanel.canReDo() )
				   {
				       drawPanel.reDo();
				   }
				   else
				   {
					   undoItem.setEnabled( true );
					   redoItem.setEnabled( false );
				   }
			   }
		   }
		);
		
	   
	     //定义图象菜单
	    
	   imageMenu = new JMenu( "图象(I)" );
	   
	    // 定义图象菜单下的相关项目
	    
	   
	   
	    // 定义清除图象菜单项,并设置快捷键为'C'
	    
	   clearItem = new JMenuItem( "清除图象(C)",'C' );
	   
	   /**
	    * 设置清除图象菜单项事件监听器
	    */
	   clearItem.addActionListener(
		  new ActionListener() {
			  public void actionPerformed( ActionEvent e )
			  {
				  redoItem.setEnabled( false );				 
				  clearItemActionPerformed( e );
			  }
		  }
	   );
	   
	   
	    // 设置颜色菜单
	    
	   colorMenu = new JMenu( "颜色(C)" );
	   
	  
	    // 设置前景色菜单项,并设置快捷键为'F'
	    
	   foregroundItem = new JMenuItem( "前景色(F)", 'F' );
	   
	   /**
	    * 前景色菜单项事件监听器,用于设置当前颜色
	    */
	   foregroundItem.addActionListener(
		  new ActionListener() {
			  public void actionPerformed( ActionEvent e )
			  {
				  foregroundItemActionPerformed( e );
			  }
		  }
	   );
	   
	   
	    // 设置背景色菜单项,并设置快捷键为'B'
	    
	   backgroundItem = new JMenuItem( "背景色(B)",'B' );
	   
	   /**
	    * 背景色菜单项事件监听器,用于设置画板的背景
	    */
	   backgroundItem.addActionListener(
		  new ActionListener() {
			  public void actionPerformed( ActionEvent e )
			  {
				  backgroundItemActionPerformed( e );
			  }
		  }
	   );
	   
	   
	   // 定义帮助菜单
	    
	   helpMenu = new JMenu( "帮助(H)" );
	   
	   
	    // 定义关于画图菜单项,并设置快捷键为'A'
	    
	   aboutItem = new JMenuItem( "关于画图(A)",'A' );
	   aboutItem.addActionListener(
			   
			   new MyPaint_AboutItem_actionAdapter( this )
	   );
	   
	   
	   // 设置菜单栏
	    
	   menuBar.add( fileMenu );
	   menuBar.add( editMenu );
	   menuBar.add( imageMenu );
	   menuBar.add( colorMenu );
	   menuBar.add( helpMenu );
	   
	   fileMenu.add( newItem );
	   fileMenu.add( openItem );
	   fileMenu.add( saveItem );
	   fileMenu.add( emportItem );
	   fileMenu.add( exitItem );
	   
	   editMenu.add( undoItem );
	   editMenu.add( redoItem );
	   
	   imageMenu.add( clearItem );
	   
	   colorMenu.add( foregroundItem );
	   colorMenu.add( backgroundItem );
	   
	   helpMenu.add( aboutItem );
	
	    
	     // 设置工具的相关部件
	     
		
		
		 // 设置ctrlPanel的格局
		 
		ctrlPanel.setLayout( new GridBagLayout() ); 
		
		
		 // 突出斜面
		 
		ctrlPanel.setBorder( new SoftBevelBorder( BevelBorder.RAISED ) );
		
		
		 // 设置mediumPanel1的格局,从上到下纵向布置组件
		 
		mediumPanel1.setLayout( new BoxLayout( mediumPanel1, BoxLayout.Y_AXIS ) );
		
		toolsPanel.setBorder( new TitledBorder( null, "Drawing Tools", TitledBorder.DEFAULT_JUSTIFICATION , TitledBorder.CENTER , new Font( "Dialog", Font.BOLD+Font.ITALIC, 13 ), Color.BLACK ) );
		
		
		
		 //设置mediumPanel2的格局,5行2列,水平和垂直间隔都是5
		 
		mediumPanel2.setLayout( new GridLayout( 5, 2, 5, 5 ) );
		
		/**
		 * 设置各个工具按钮
		 */
		
		
		 // 直线
		 
		Icon linebug = new ImageIcon( getClass().getResource("/line.GIF") );
		lineButton = new JToggleButton( linebug );
		lineButton.setToolTipText( "画直线" );
        lineButton.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	state.setText( "用指定的线宽画一条直线" );
            	modelPanel.setVisible( false );
            	brushPanel.setVisible( false );
                drawPanel.setTool( MyPanel.TOOL_LINE );
            }
        }
           );
        
		toolsGroup.add( lineButton );
        mediumPanel2.add( lineButton );
        
        
         // 矩形
        
        Icon rectbug = new ImageIcon( getClass().getResource("/rect.GIF"));
		rectButton = new JToggleButton( rectbug  );
		rectButton.setToolTipText( "矩形" );
        rectButton.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	state.setText( "用选定的填充模式画矩形" );
            	modelPanel.setVisible( true );
            	brushPanel.setVisible( false );
            	drawPanel.setTool( MyPanel.TOOL_RECT );
            	drawPanel.setModel(MyPanel.MODEL1);
            	
            }
        }
           );
        
		toolsGroup.add( rectButton );
        mediumPanel2.add( rectButton );
        
       
         // 椭圆
         
        Icon ovalbug = new ImageIcon( getClass().getResource("/acr.GIF"));
		ovalButton = new JToggleButton( ovalbug );
		ovalButton.setToolTipText( "椭圆" );
        ovalButton.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	state.setText( "用选定的填充模式画椭圆" );
            	modelPanel.setVisible( true );
            	brushPanel.setVisible( false );
            	drawPanel.setTool( MyPanel.TOOL_OVAL );
            	drawPanel.setModel(MyPanel.MODEL1);
            }
        }
           );
        
		toolsGroup.add( ovalButton );
        mediumPanel2.add( ovalButton );
         
         //菱形
         
        Icon diamondbug = new ImageIcon( getClass().getResource("/diamond.GIF"));
		diamondButton = new JToggleButton( diamondbug );
		diamondButton.setToolTipText( "菱形" );
        diamondButton.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	state.setText( "用选定的填充模式画菱形" );
            	modelPanel.setVisible( true );
            	brushPanel.setVisible( false );
            	drawPanel.setTool( MyPanel.TOOL_DIAMOND );
            	drawPanel.setModel(MyPanel.MODEL1);
            }
        }
           );
        
		toolsGroup.add( diamondButton );
        mediumPanel2.add( diamondButton );
     
        
         //圆角矩形
         
        Icon roundrectbug = new ImageIcon( getClass().getResource("/roundrect.GIF"));
        roundrectButton = new JToggleButton( roundrectbug );
        roundrectButton.setToolTipText( "圆角矩形" );
        roundrectButton.addActionListener(
        		new ActionListener() {
        			  public void actionPerformed( ActionEvent e ) {
        	            	undoItem.setEnabled( true );
        	            	redoItem.setEnabled( true );
        	            	state.setText( "用选定的填充模式圆角矩形" );
        	            	modelPanel.setVisible( true );
        	            	brushPanel.setVisible( false );
        	            	drawPanel.setTool( MyPanel.TOOL_ROUNDRECT );
        	            	drawPanel.setModel( MyPanel.MODEL1 );	
        		}
        		}
        );
        toolsGroup.add( roundrectButton );
        mediumPanel2.add( roundrectButton );
        
        
        //  铅笔
          
		pencilButton = new JToggleButton( pencilicon );
		pencilButton.setToolTipText( "铅笔" );
        pencilButton.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	state.setText( "用一定的象素线宽画任意形状的线条" );
            	modelPanel.setVisible( false );
            	brushPanel.setVisible( false );
            	drawPanel.setTool( MyPanel.TOOL_PENCIL );
            }
        }
           );
        
		toolsGroup.add( pencilButton );
        mediumPanel2.add( pencilButton );
        
        

⌨️ 快捷键说明

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