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

📄 mypaint.java

📁 Java画板
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
         // 橡皮擦
         
        ImageIcon eraserbug = new ImageIcon( getClass().getResource("/eraser.GIF"));
		eraserButton = new JToggleButton( eraserbug );
		eraserButton.setToolTipText( "橡皮擦" );
        eraserButton.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_ERASER );
            }
        }
           );
        
		toolsGroup.add( eraserButton );
        mediumPanel2.add( eraserButton );
        
        
        // 多边形
         
		polygonButton = new JToggleButton( polygonicon );
		polygonButton.setToolTipText( "多边形" );
        polygonButton.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_POLYGON );
            }
        }
           );
        
		toolsGroup.add( polygonButton );
        mediumPanel2.add( polygonButton );
        
        
         
        /**
    	 * 作者:钟雯
    	 * 实现画刷功能及模式选择
    	 *  初始时间:2007 5-20
    	 * 最后一次修改时间:2007 6-13
    	 */
    	
        // 画刷
         
		brushButton = new JToggleButton( brushicon );
		brushButton.setToolTipText( "刷子" );
        brushButton.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	state.setText( "按选定的形状和大小使用刷子绘图" );
            	modelPanel.setVisible( false );
            	brushPanel.setVisible( true );
            	drawPanel.setTool( MyPanel.TOOL_POLYGON );
            }
        }
           );
        
        /**
    	 * 作者:钟雯
    	 * 实现规则图形的填充功能
    	 *  初始时间:2007 5-23
    	 * 最后一次修改时间:2007 6-15
    	 */
    	
        
        
        fillButton = new JToggleButton( fillicon );
        fillButton.setToolTipText("填充") ;
        fillButton.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_FILL );
        		         
        			}
        		}
        		);
        toolsGroup.add( fillButton );
        mediumPanel2.add( fillButton );
        
        toolsPanel.add( mediumPanel2 );
        
        mediumPanel1.add( toolsPanel );
        
        
		toolsGroup.add( brushButton );
        mediumPanel2.add( brushButton );
        
        toolsPanel.add( mediumPanel2 );
        
        mediumPanel1.add( toolsPanel );
        
        
          
        /**
    	 * 作者:钟雯
    	 * 实现文字功能及其格式选择
    	 *  初始时间:2007 5-20
    	 * 最后一次修改时间:2007 6-13
    	 */
    	
        //文字
         
        wordPanel.setBorder( new TitledBorder( null, "Word Tool",  TitledBorder.DEFAULT_JUSTIFICATION , TitledBorder.CENTER , new Font( "Dialog", Font.BOLD+Font.ITALIC, 13 ), Color.BLACK  ) );
        mediumPanel3.setLayout( new GridLayout( 4, 1, 0, 2 ) );
        
		wordButton = new JToggleButton( wordicon );
		wordButton.setToolTipText( "文字" );
        wordButton.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_WORD );
            }
        }
        );

        mediumPanel3.add( wordButton );
        
        
         //字体类型
         
        fontPanel.setLayout( new GridLayout( 1, 2, 3, 0 ) );
        CheckBoxHandler handler = new CheckBoxHandler();
        
        bold = new JCheckBox( "B" );
        bold.addItemListener( handler );
        fontPanel.add( bold );
        
        italic = new JCheckBox( "I" );
        italic.addItemListener( handler );
        fontPanel.add( italic );
        
        mediumPanel3.add( fontPanel );
        
        
         // 字体风格
         
        stylescombo = new JComboBox( styleNames );
        stylescombo.setForeground( Color.BLUE );
        stylescombo.setMaximumRowCount( 8 );
        stylescombo.setBorder( new LineBorder( Color.BLUE ) );
        stylescombo.addItemListener(
           new ItemListener() {
        	   public void itemStateChanged( ItemEvent e )
        	   {
        		   style1 = styleNames[stylescombo.getSelectedIndex()];
        		   drawPanel.setStyle1( style1 );
        	   }
           }
        );
        
        mediumPanel3.add( stylescombo );
        
       
        //字体大小
        
        sizecombo = new JComboBox( sizes );
        sizecombo.setMaximumRowCount( 8 );
        sizecombo.setForeground( Color.MAGENTA );
        sizecombo.setBorder( new LineBorder( Color.BLUE ) );
        sizecombo.addItemListener(
           new ItemListener() {
        	   public void itemStateChanged( ItemEvent e )
        	   {
        		   number =Integer.parseInt(sizes[sizecombo.getSelectedIndex()]);
        		   drawPanel.setNumber(number);
        	   }
           }
        );
        
        mediumPanel3.add( sizecombo );
        
        wordPanel.add( mediumPanel3 );
        
        mediumPanel1.add( wordPanel );
        
        
        
         //各类工具的宽度
         
        mediumPanel4.setBorder( new TitledBorder( null, "Size Setting",  TitledBorder.DEFAULT_JUSTIFICATION , TitledBorder.CENTER , new Font( "Dialog", Font.BOLD+Font.ITALIC, 13 ), Color.BLACK  ) );
        mediumPanel4.setLayout( new BorderLayout( 0, 3 ) );
        
        weightcombo.setFont( new Font("Dialog", 0, 10 ) );
        weightcombo.setModel( new DefaultComboBoxModel(new String[] { "Stroke Weight 1.0px", "Stroke Weight 2.0px", 
        		"Stroke Weight 5.0px", "Stroke Weight 7.5px", "Stroke Weight 10.0px","Stroke Weight 15.0px" } ) );
        weightcombo.setForeground( Color.BLUE );
        weightcombo.setBorder( new LineBorder( Color.BLUE ) );
        weightcombo.addActionListener(
        		new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
                drawPanel.setStrokeIndex( weightcombo.getSelectedIndex() );
            }
        }
        		);

        mediumPanel4.add( weightcombo, BorderLayout.NORTH );
        
        
         //设置橡皮擦的宽度
         
        erasercombo.setFont(new Font("Dialog", 0, 10));
        erasercombo.setModel(new DefaultComboBoxModel( new String[] { "Eraser Size 15px", "Eraser Size 20px",
        		"Eraser Size 30px", "Eraser Size 50px", "Eraser Size 100px" } ) );
        erasercombo.setForeground( Color.BLUE );
        erasercombo.setBorder( new LineBorder( Color.BLUE ) );
        erasercombo.addActionListener(
        		new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
                drawPanel.setEraserIndex( erasercombo.getSelectedIndex() );
            }
        }
        		);

        mediumPanel4.add( erasercombo, BorderLayout.SOUTH );

        sizePanel.add( mediumPanel4 );

        mediumPanel1.add( sizePanel );
        
         //各种图形的 三种模式
         
        mediumPanel5.setBorder( new TitledBorder( null, "Model",  TitledBorder.DEFAULT_JUSTIFICATION , TitledBorder.CENTER , new Font( "Dialog", Font.BOLD+Font.ITALIC, 13 ), Color.BLACK  ) );
        mediumPanel5.setLayout( new GridLayout( 3, 1, 0, 5 ) );
        //模式1
		model1Button = new JToggleButton( model1icon );
        model1Button.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	drawPanel.setModel(MyPanel.MODEL1);
            }
        }
           );
        
        mediumPanel5.add( model1Button );
        
      //模式2
		model2Button = new JToggleButton( model2icon );
        model2Button.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	drawPanel.setModel(MyPanel.MODEL2);
            }
        }
           );
        mediumPanel5.add( model2Button );
        
        //模式3
		model3Button = new JToggleButton( model3icon );
        model3Button.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	drawPanel.setModel(MyPanel.MODEL3);
            }
        }
           );
        mediumPanel5.add( model3Button );
        
        modelPanel.add( mediumPanel5 );
        modelPanel.setVisible( false );
        
        mediumPanel1.add( modelPanel );
        
        
         // 画刷下的各种模式
         
        mediumPanel6.setBorder( new TitledBorder( null, "Brush Model Setting",  TitledBorder.DEFAULT_JUSTIFICATION , TitledBorder.CENTER , new Font( "Dialog", Font.BOLD+Font.ITALIC, 13 ), Color.BLACK  ) );
        mediumPanel6.setLayout( new GridLayout( 1, 2, 5, 0 ) );
        
        circlePanel.setLayout( new GridLayout( 3, 1, 0, 5 ) );
        
        //圆形模式1
		brush0Button = new JToggleButton( circle1icon );
        brush0Button.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	drawPanel.setTool(MyPanel.TOOL_CIRCLE1);
            }
        }
           );
        
        circlePanel.add( brush0Button );
        
        //圆形模式2
		brush1Button = new JToggleButton( circle2icon );
        brush1Button.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	drawPanel.setTool(MyPanel.TOOL_CIRCLE2);
            }
        }
           );
        
        circlePanel.add( brush1Button );
        
        //圆形模式3
		brush2Button = new JToggleButton( circle3icon );
        brush2Button.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	drawPanel.setTool(MyPanel.TOOL_CIRCLE3);
            }
        }
           );
        
        circlePanel.add( brush2Button );
        
        //方形模式1
        squarePanel.setLayout( new GridLayout( 3, 1, 0, 5 ) );
		brush3Button = new JToggleButton( square1icon);
        brush3Button.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	drawPanel.setTool( MyPanel.TOOL_SQUARE1);
            }
        }
           );
        
        squarePanel.add( brush3Button );
        
        //方形模式2
		brush4Button = new JToggleButton( square2icon);
        brush4Button.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	drawPanel.setTool( MyPanel.TOOL_SQUARE2 );
            }
        }
           );
        
        squarePanel.add( brush4Button );
        
        //方形模式3
		brush5Button = new JToggleButton( square3icon );
        brush5Button.addActionListener(
           new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
            	undoItem.setEnabled( true );
            	redoItem.setEnabled( true );
            	drawPanel.setTool( MyPanel.TOOL_SQUARE3);
            }
        }
           );
        
        squarePanel.add( brush5Button );
        
        mediumPanel6.add( circlePanel );
        mediumPanel6.add( squarePanel );
        
        brushPanel.add( mediumPanel6 );
        brushPanel.setVisible( false );
        
        mediumPanel1.add( brushPanel );
        
        /**
         * 指示 Component 已获得或失去输入焦点的低级别事件即scrollpanel的引入
         */
        drawPanel.addFocusListener( 
        	new FocusListener() {
        		public void focusGained(FocusEvent e1)
        		{

⌨️ 快捷键说明

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