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

📄 paintdraw.java

📁 用java写的一个画图板
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    		   }
    	       else{
    	    	   g.setXORMode(Color.white);
    	    	   x0=x>sx?sx:x;y0=y>sy?sy:y;
    	    	   if(!fill){                                 //没填充 
        	    	   if(f==8)g.drawArc(x0, y0, Math.abs(x-sx), Math.abs(y-sy),0,180);
        	    	   else g.drawRoundRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy),100,100);
        	       }//end if
        	       else{
        	      
        	    	   if(f==8)  g.fillArc(x0, y0, Math.abs(x-sx), Math.abs(y-sy),0,180);
        	    	   else g.fillRoundRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy),100,100);
        	       }
    	    	   x=e.getX();y=e.getY();
    	    	   x0=x>sx?sx:x;y0=y>sy?sy:y;
    	    	   g.setColor(c);
    	    	   if(!fill){                                 //没填充 
        	    	   if(f==8) g.drawArc(x0, y0, Math.abs(x-sx), Math.abs(y-sy),0,180);
        	    	   else g.drawRoundRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy),100,100);
        	       }//end if
        	       else{
        	    	   if(f==8) g.fillArc(x0, y0, Math.abs(x-sx), Math.abs(y-sy),0,180);
        	    	   else g.fillRoundRect(x0,y0,Math.abs(x-sx), Math.abs(y-sy),100,100);
        	       }
        	    }//end else
    	        break;
    	      case 10:{ 
    	                
    	      	        x=e.getX();y=e.getY();
    	    	        x0=x>sx?sx:x;y0=y>sy?sy:y; 
    	      	        Paint paint=new GradientPaint(x0,y0,c2,x,y,c);
    	      	       
    	    	        g.setPaint(paint);
    	      	        Ellipse2D circle=new Ellipse2D.Double(x0,y0,Math.abs(x-sx),Math.abs(y-sy));
    	      	        g.fill(circle);
    	      	        
    	      	      }break;
    	        case 11:{ /*x=e.getX();y=e.getY();
    	    	          x0=x>sx?sx:x;y0=y>sy?sy:y; */
    	      	          rect=new Rectangle2D.Double(100,100,200,200);
    	      	          g.setPaint(c); 	
    	      	          g.draw(rect);  	      	        
    	      	      } break;
    	       case 12:{ g.setColor(c);
    	       	         rect=new Rectangle2D.Double(100,100,200,200);
    	                 g.draw(rect);  	      	        
    	       	         AffineTransform1=new AffineTransform();
    	       	         AffineTransform1.setToRotation(Math.toRadians(rox));
    	       	         g.transform(AffineTransform1);
    	       	         g.fill(rect);
    	       	       }break;
    	       case 13:{ g.setColor(c);
    	       	         rect=new Rectangle2D.Double(100,100,200,200);
    	       	         g.draw(rect);
    	       	         AffineTransform1=new AffineTransform();
    	       	         AffineTransform1.setToScale(Math.toRadians(scalex),Math.toRadians(scalex));
    	       	         g.transform(AffineTransform1);
    	       	         g.fill(rect);
    	       	       }break;
    	       case 14:{ g.setColor(c);
    	       	         rect=new Rectangle2D.Double(100,100,200,200);
    	       	         g.draw(rect);
    	       	         AffineTransform1=new AffineTransform();
    	       	         AffineTransform1.setToTranslation(translatex,translatex);
    	       	         g.transform(AffineTransform1);
    	       	         g.fill(rect);
    	       	       }break;
    	       case 15:{
    	       	        x=e.getX();y=e.getY();
    	    	        x0=x>sx?sx:x;y0=y>sy?sy:y; 
    	      	        Paint paint=new GradientPaint(x0,y0,c2,x,y,c);
    	      	       
    	    	        g.setPaint(paint);
    	      	        Rectangle2D rect=new Rectangle2D.Double(x0,y0,Math.abs(x-sx),Math.abs(y-sy));
    	      	        g.fill(rect);
    	      	       
    	       	       } break;
    	       case 16:
    	       	       { x=e.getX();y=e.getY();
    	    	        x0=x>sx?sx:x;y0=y>sy?sy:y; 
    	      	        Paint paint=new GradientPaint(x0,y0,c2,x,y,c);
    	      	       
    	    	        g.setPaint(Color.black);
    	    	        g.setXORMode(Color.white);
    	    	        
    	      	        
    	      	        g.draw3DRect(x0,y0,Math.abs(x-sx),Math.abs(y-sy),true);

    	       	       	}break;
    	       	 case 17:{ MediaTracker tracker = new MediaTracker(frame);
    	       	           tracker.addImage(image2, 0);
                           try { tracker.waitForID(0); }
                           catch (InterruptedException ex) {}
                           image = new BufferedImage(image2.getWidth(null),image2.getHeight(null),image.TYPE_INT_RGB);
                           Graphics2D bufg=image.createGraphics();
                
    	       	 	       g.drawImage(image2,0,0,null);
    	       	 	       repaint();
    	       	 	     }
    	   	  default:
    	 }//end switch
    	 
    	 repaint();
    }

    
    
    public void actionPerformed(ActionEvent e)
    { /*f=Integer.parseInt(e.getActionCommand());*/
       Object source = e.getSource(); 
       if(source==jmi2)
       	{JFileChooser chooser = new JFileChooser();
         chooser.setCurrentDirectory(new File("."));

         chooser.setFileFilter(new
            javax.swing.filechooser.FileFilter()
            {  public boolean accept(File f)
               {  String name = f.getName().toLowerCase();
                  return name.endsWith(".gif")
                     || name.endsWith(".jpg")
                     || name.endsWith(".jpeg")
                     || f.isDirectory();
               }
               public String getDescription()
               {  return "Image files";
               }
            });

         int r = chooser.showOpenDialog(this);
         if(r == JFileChooser.APPROVE_OPTION)
         {  String name = chooser.getSelectedFile().getAbsolutePath();
            Image loadedImage=Toolkit.getDefaultToolkit().getImage(name);
            MediaTracker tracker=new MediaTracker(this);
            tracker.addImage(loadedImage,0);
            try{tracker.waitForID(0);}
            catch(InterruptedException er){}
            image=new BufferedImage(loadedImage.getWidth(null),loadedImage.getHeight(null),BufferedImage.TYPE_INT_RGB);
            Graphics2D g2 = image.createGraphics();
            g2.drawImage(loadedImage, 0, 0, null);
            Graphics2D g=(Graphics2D)JDrawPanel.getGraphics();
            g.drawImage(image,0,0,null);
            repaint();
         }
      }//end if 
      if(source==jmi3)
      	{
      	  FileDialog savedialog=new FileDialog(frame,"保存图型到JPG格式",FileDialog.SAVE);

          savedialog.setVisible(true);   
                                         

          if(savedialog.getFile()!=null) 
             {
                try{
                     String fileName=savedialog.getFile();    
                     FileOutputStream out=new FileOutputStream(fileName);
                     
                     JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);//createJPEGEncoder(OutputStream dest) 創建可用來將圖像數據編碼為 JPEG 數據流的 JPEGImageEncoder 實例。
                     
                     JPEGEncodeParam param=encoder.getDefaultJPEGEncodeParam(image);//getDefaultJPEGEncodeParam(BufferedImage bi) 創建 JPEGEncodeParam 對像的工廠方法。
                     
                     param.setQuality(1.0f,false);//setQuality(float quality, boolean forceBaseline) 創建替代當前已建量化表的新量化表。
                     encoder.setJPEGEncodeParam(param);
                     
                     encoder.encode(image);
                     out.close();//关闭输出流
                   }
               catch(Exception EE)
                   {EE.printStackTrace();
                   } 
             }     
      	}
      repaint();
     }
    public void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
    	{	c=new Color(r1.getValue(),g1.getValue(),b1.getValue());
    	    tt.setBackground(c);
    	}
    public void itemStateChanged(ItemEvent e)
    	{   if(e.getItemSelectable() instanceof JCheckBox)
    		{
    		JCheckBox temp=(JCheckBox)e.getItemSelectable();
    		fill=temp.isSelected();
    	    }
    	    if(e.getItemSelectable() instanceof JRadioButton)
    		{
    		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;
    		else if(temp==op5)f=5;
    		else if(temp==op6)f=6;
    		else if(temp==op7)f=8;
    		else if(temp==op8)f=9;
    	    }
    	    if(e.getSource()==sizeChoice)
    	    {   
    	    	String selected = sizeChoice.getSelectedItem();
    	        if(selected=="1")
    	        { con = 1; 
    	          size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
    	        }
    	        else if(selected=="3")
    	        {  con = 3; 
    	           size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
    	        }
    	        else if(selected=="5")
    	        { con = 5; 
    	          size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
    	        }
    	        else if(selected=="7")
    	        { con = 7; 
    	          size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
    	        }
    	        else if(selected=="9")
    	        { con = 9; 
    	          size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
    	        }
    	        else if(selected=="11")
    	        { con = 11; 
    	          size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
    	        }
    	        else if(selected=="大")
    	        { con = 20; 
    	          size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
    	        }
    	        else if(selected=="特大")
    	        { con = 30; 
    	          size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
    	        }	
    	    }
    	    if(e.getSource()==eraseChoice)
    	    { 
    	    	String erasesize=eraseChoice.getSelectedItem();
    	    	if(erasesize=="5")
    	    	{
    	    		econ=5;
    	    		
    	    	}
    	    	else if(erasesize=="9")
    	    	{
    	    		econ=9;
    	    	}
    	    	else if(erasesize=="13")
    	    	{
    	    		econ=13;
    	    	}
    	    	else if(erasesize=="17")
    	    	{
    	    		econ=17;
    	    	}
    	    }
    	    repaint();
    	}
  
  
    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);
    	}
    	new PaintDraw();
    }
    
    
    
}

⌨️ 快捷键说明

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