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

📄 paintdraw.java

📁 java实现的简易绘图工具,界面比较好,功能较多,可以画各种图形
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }
    
    
    public void mousePressed(java.awt.event.MouseEvent e)
    	{
    	flag=false;
    	sx=e.getX();sy=e.getY();
    	}
    public void mouseReleased(java.awt.event.MouseEvent e)
    	{	int x0,y0;                                            //新点坐标
    	    Graphics2D g=(Graphics2D)JDrawPanel.getGraphics();
    	    switch(f){
    	    case 2:g.setXORMode(Color.white);                      //异或画直线模式
    	       g.drawLine(sx, sy, x, y);                 //清除上一次移动时画的线
    	       x=e.getX();y=e.getY();                  //获得新位置
    	       g.setColor(c);                            //设置后来有滑动条设定的颜色
    	       g.setPaintMode();                         //设置直接画图模式
    	       g.drawLine(sx, sy, x,y);
    	       break;
    	    case 3:                                           //椭圆和矩形
    	    case 4:g.setXORMode(Color.white);
    	       x0=x>sx?sx:x;y0=y>sy?sy:y;                 //获得上次左上角坐标
    	       if(!fill){                                 //没填充 
    	    	   if(f==3) g.drawOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
    	    	   else g.drawRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
    	       }//end if
    	       else{
    	    	   if(f==3) g.fillOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
    	    	   else g.fillRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
    	       }
    	       g.setXORMode(Color.white);
    	       x=e.getX();y=e.getY();
    	       x0=x>sx?sx:x;y0=y>sy?sy:y;
    	       g.setColor(c);
    	       if(!fill){                                 //没填充 
    	    	   if(f==3) g.drawOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
    	    	   else g.drawRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
    	       }//end if
    	       else{
    	    	   if(f==3) g.fillOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
    	    	   else g.fillRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
    	       }
    	       break;
    	       }
    	}
    public void mouseEntered(java.awt.event.MouseEvent e){}
    public void mouseExited(java.awt.event.MouseEvent e){}
    public void mouseClicked(java.awt.event.MouseEvent e){}
    public void mouseMoved(java.awt.event.MouseEvent e){}
    public void mouseDragged(java.awt.event.MouseEvent e)
    	{	int x0,y0;
    	    Graphics2D g=(Graphics2D)JDrawPanel.getGraphics();
    	    switch(f){
    	    case 1: x=e.getX();y=e.getY();//任意绘图
    	        g.setColor(c);
    	        g.setPaintMode();
    	        g.drawLine(sx, sy, x,y);
    	        sx=x;sy=y;                //把新点复制给sx,sy
    	        break;
    	    case 2: if(!flag){
    		    x=e.getX();y=e.getY();
    		    g.setXORMode(Color.white);
    		    g.drawLine(sx, sy, x,y);
    		    flag=true;
    		    }//end if
    	        else{ 
    	        	g.setXORMode(Color.white);
    	        	g.drawLine(sx, sy, x,y);
    	        	x=e.getX();y=e.getY();
    	        	g.setXORMode(Color.white);
    	        	g.drawLine(sx, sy, x,y);
    	        	}
    	        break;
    	    case 3:
    	    case 4:if(!flag){
    		   x=e.getX();y=e.getY();
    		   x0=x>sx?sx:x;y0=y>sy?sy:y;
    		   g.setXORMode(Color.white);
    		   if(!fill){                                 //没填充 
    	    	   if(f==3) g.drawOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
    	    	   else g.drawRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
    	       }//end if
    	       else{
    	    	   if(f==3) g.fillOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
    	    	   else g.fillRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
    	       }
    		   flag=true;
    		   }
    	       else{
    	    	   g.setXORMode(Color.white);
    	    	   x0=x>sx?sx:x;y0=y>sy?sy:y;
    	    	   if(!fill){                                 //没填充 
        	    	   if(f==3) g.drawOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
        	    	   else g.drawRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
        	       }//end if
        	       else{
        	    	   if(f==3) g.fillOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
        	    	   else g.fillRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
        	       }
    	    	   x=e.getX();y=e.getY();
    	    	   x0=x>sx?sx:x;y0=y>sy?sy:y;
    	    	   g.setColor(c);
    	    	   if(!fill){                                 //没填充 
        	    	   if(f==3) g.drawOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
        	    	   else g.drawRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
        	       }//end if
        	       else{
        	    	   if(f==3) g.fillOval(x0, y0, Math.abs(x-sx), Math.abs(y-sy));
        	    	   else g.fillRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy));
        	       }
        	    }//end else
    	        break;
    	 }//end switch
    }

    
    
    public void actionPerformed(java.awt.event.ActionEvent e)
    	{	/*f=Integer.parseInt(e.getActionCommand());*/
    	    Object obj=e.getSource();
    	    if(obj==调色板)
    	        {  
       	            Color tempColor=JColorChooser.showDialog(this,"调色板",c);
    	            c=tempColor;
                    tt.setBackground(c);
                }
            else if(obj==clear)
                {
                	JDrawPanel.setBackground(Color.white);
            	}    
            else if(obj==截屏)
                { 
                	Robot robot=null;                               
                    try{
                        robot=new  Robot();                         
                       }
                    catch(Exception er)
                       {}
                    Rectangle screenRect=null;                      
                    int width=getToolkit().getScreenSize().width;   
                    int height=getToolkit().getScreenSize().height; 
                    screenRect=new Rectangle(0,0,width,height); 
                    setVisible(false);
                    this.setVisible(false);
                    image=robot.createScreenCapture(screenRect);
                    setVisible(true);
            	}		
    	}
    public void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
    	{	c=new Color(r1.getValue(),g1.getValue(),b1.getValue());
    	    tt.setBackground(c);
    	}
    public void itemStateChanged(java.awt.event.ItemEvent e)
    	{   if(e.getItemSelectable() instanceof JCheckBox)
    		{
    		JCheckBox temp=(JCheckBox)e.getItemSelectable();
    		fill=temp.isSelected();
    	    }
    	    else
    		{
    		JRadioButton temp=(JRadioButton)e.getItemSelectable();
    		if(temp==op1)f=1;
    		else if(temp==op2)f=2;
    		else if(temp==op3)f=3;
    		else if(temp==op4)f=4;
    	    }
    	}
    
    
  
    public static void main(String args[])
    {   JFrame.setDefaultLookAndFeelDecorated(true);
    	Font font=new Font("JFrame",Font.PLAIN+Font.BOLD,14);
    	Enumeration keys=UIManager.getLookAndFeelDefaults().keys();
    	while(keys.hasMoreElements())
    	{
    		Object key=keys.nextElement();
    		if(UIManager.get(key) instanceof Font) UIManager.put(key,font);
    	}
    	PaintDraw mainFrame=new PaintDraw();
    }
    
    
}

⌨️ 快捷键说明

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