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

📄 graphicspanel.java

📁 在java下实现的绘图程序
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        g.setStroke(new BasicStroke(5.0f));
        g.setColor(preColor);
        g.drawLine(polyPoint[1][0],polyPoint[1][1],polyPoint[Pointnum][0],polyPoint[Pointnum][1]);
        Graphicsnum++;
        Bgt[Graphicsnum][0]=1;
        Bgt[Graphicsnum][1]=polyPoint[1][0];
        Bgt[Graphicsnum][2]=polyPoint[1][1];
        Bgt[Graphicsnum][3]=polyPoint[Pointnum][0];
        Bgt[Graphicsnum][4]=polyPoint[Pointnum][1];
        Bgt[Graphicsnum][5]=lineStyle;
        colorChoice[Graphicsnum]=preColor;
        Pointnum=0;
     }        
             
    public void display(Graphics g)
    {   
        int i;
        Color oldColor;
        Graphics2D g1=(Graphics2D) g;
        g1.setColor(backColor);
        g1.fillRect(0,0,aPanel.getWidth(),aPanel.getHeight());
    	for(i=1;i<=Graphicsnum;i++)
    	{ /* if(Bgt[i][0]==5||Bgt[i][0]==9)
    	 {
    	 	if(Bgt[i][5]==1);
            g1.setStroke(new BasicStroke(3.0f));
            if(Bgt[i][5]==2)
            g1.setStroke(new BasicStroke(5.0f));
            if(Bgt[i][5]==3)
            g1.setStroke(new BasicStroke(3.0f));
            if(Bgt[i][5]==4)
            g1.setStroke(new BasicStroke(3.0f));
    	 	
    	 }*/
    	 //else
    	 // {
    		if(Bgt[i][5]==1);
            g1.setStroke(new BasicStroke(1.0f));
            if(Bgt[i][5]==2)
            g1.setStroke(new BasicStroke(3.0f));
            if(Bgt[i][5]==3)
            g1.setStroke(new BasicStroke(5.0f));
            if(Bgt[i][5]==4)
            g1.setStroke(new BasicStroke(3.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));
            if(Bgt[i][5]==5)
            g1.setStroke(new BasicStroke(5.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));
            if(Bgt[i][5]==6)
            g1.setStroke(new BasicStroke(5.0f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL));
            if(Bgt[i][5]==7)
            g1.setStroke(new BasicStroke(5.0f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER));
            
         // }  
    		switch(Bgt[i][0])
    		{
    			case 1:
    			{
    		   	g1.setColor(colorChoice[i]);
    		    g1.drawLine(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
                break;
                 }
               case 3:
               {
               	/*try{
             	Robot r=new Robot();
             	positionX=Bgt[i][1]+aFrame.getX()+leftPanel.getWidth();
             	positionY=Bgt[i][2]+aFrame.getY()+aMenuBar.getHeight()+25;
    	        oldColor=r.getPixelColor(positionX,positionY);
                g.setColor(colorChoice[i]);
               	//areaFill(Bgt[i][1],Bgt[i][2],g1,oldColor,preColor,);
               }*/
               }
                case 6:
               {
    		   g1.setColor(colorChoice[i]);   
    		   if(Bgt[i][6]==2)         
               g1.fillOval(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
               else
               g1.drawOval(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
               break;
                 }
                 case 7:
                  {
    		   g1.setColor(colorChoice[i]);
    		   if(Bgt[i][6]==2)            
               g1.fillRect(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
               else
               g1.drawRect(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
               break;
                 }
                  case 10:
                  { 
                  
               //g1.setColor(colorChoice[i]);
               //g1.drawString(Text[Bgt[i][2]],Bgt[i][1],Bgt[i][2]);
               //break;
                 } 
                  	            
                default:
                 break;
           }
      }  
     }     	
   	public void paint(Graphics g)
    {
    	 
         super.paint(g);
         display(g);
         //if(!(fileName.equals("未命名")))
         //{
         Toolkit toolk = Toolkit.getDefaultToolkit();
         Image openImage = toolk.getImage(filePaths);
         g.drawImage(openImage,0,0,this);
         //g.drawString(fileName+"!",1,1);
        // } 
         
         
     }
     
     
     	
}

	   	
public class LineListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		if(toolState==2)
			aPanel.lastLine();
		toolState=1;
		Graphics g=dummyPanel.getGraphics();	
	
		 
		 dummyPanel.repaint();
		
		
    
	}
}

public class PolyListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		if(toolState==2)
			aPanel.lastLine();
		aPanel.lastLine();
		toolState=2;
		Graphics g=dummyPanel.getGraphics();	
	
		 
		 dummyPanel.repaint();
	}
}
public class FillListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		if(toolState==2)
			aPanel.lastLine();
		toolState=3;
		Graphics g=dummyPanel.getGraphics();	
		dummyPanel.repaint();
		JOptionPane.showMessageDialog(aFrame, "填充功能未实现!");
		//JOptionPane.setFont(new Font("optionFont",Font.PLAIN,14));
	}
}

public class PenListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
	   if(toolState==2)
			aPanel.lastLine();
		toolState=4;
			Graphics g=dummyPanel.getGraphics();	
	
		 
		 dummyPanel.repaint();
	}
}
public class BrushListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		if(toolState==2)
			aPanel.lastLine();
		toolState=5;
		Graphics g=dummyPanel.getGraphics();	
	
		 
		 dummyPanel.repaint();
	}
}

public class CycleListener implements ActionListener
{       
	
       public void actionPerformed(ActionEvent e)
	{   
	   if(toolState==2)
			aPanel.lastLine();
	   toolState=6;
       Graphics g=dummyPanel.getGraphics();	
	
		 
		 dummyPanel.repaint();
        
        
    }
} 

public class RectListener implements ActionListener
{       
	
       public void actionPerformed(ActionEvent e)
	{
        if(toolState==2)
			aPanel.lastLine();
         toolState=7;
         Graphics g=dummyPanel.getGraphics();	
	
		 
		 dummyPanel.repaint();
         
                 		
	}
} 
public class ArcListener implements ActionListener
{       
	
       public void actionPerformed(ActionEvent e)
	{
        if(toolState==2)
			aPanel.lastLine();
        toolState=8;
        Graphics g=dummyPanel.getGraphics();	
	
		 
		 dummyPanel.repaint();
        
    }
} 
public class EraserListener implements ActionListener
{       
	
       public void actionPerformed(ActionEvent e)
	{
         if(toolState==2)
			aPanel.lastLine();
         toolState=9;
         	Graphics g=dummyPanel.getGraphics();	
	
		 
		 dummyPanel.repaint();
              		
	}
} 
public class OpenListener implements ActionListener
{
	  public void actionPerformed(ActionEvent e)
	  { 
	    ExampleFileFilter filter=new ExampleFileFilter("png","PNG Images");
        aFileChooser.setFileFilter(filter);
	  	int returnValue=aFileChooser.showOpenDialog(aFrame);
	  	if(returnValue==aFileChooser.APPROVE_OPTION)
	  	{
	  		fileName=aFileChooser.getSelectedFile().getName();
	  		filePaths=aFileChooser.getSelectedFile().getPath();
	  	    aFrame.setTitle(fileName+"-画图");
	         
            Graphicsnum=0;
            aPanel.repaint();	  
	  			
	  	}	 
	  }
}

public class SaveAsListener implements ActionListener
{
	public void actionPerformed(ActionEvent e) 
	{
		ExampleFileFilter filter=new ExampleFileFilter("png","PNG Images");
        
        bFileChooser.setFileFilter(filter);
   	
		int returnValue=bFileChooser.showSaveDialog(aFrame);
		if(returnValue==bFileChooser.APPROVE_OPTION)
	 {	
	    
		filePaths=bFileChooser.getSelectedFile().getPath()+".png";
		fileName=bFileChooser.getSelectedFile().getName()+".png";
		
		
		
		try
		{
		saveImage();
		aFrame.setTitle(fileName+"-画图");
	    }
  	catch(Exception e1)
	   {
	    }
	 } 
	}
	public void saveImage() throws Exception
	{
		
		Iterator writers=ImageIO.getImageWritersByFormatName("png");
		ImageWriter writer=(ImageWriter)writers.next();
		File f=new File(filePaths);
		ImageOutputStream ios=ImageIO.createImageOutputStream(f);
		writer.setOutput(ios);
		BufferedImage bi=new BufferedImage(aPanel.getWidth(),aPanel.getHeight(),BufferedImage.TYPE_INT_RGB);
		Graphics g=bi.createGraphics();
		
        g.setColor(Color.white);
        g.fillRect(0,0,aPanel.getWidth(),aPanel.getHeight());
        g.setColor(Color.black);
        aPanel.display(g);

		writer.write(bi);
	}
}	
public class SaveListener implements ActionListener 
{
	
	public void actionPerformed(ActionEvent e) 
	{
	   ExampleFileFilter filter=new ExampleFileFilter("png","PNG Images");
       bFileChooser.setFileFilter(filter);
	   if(fileName.equals("未命名"))	
	 {
	 	int returnValue=bFileChooser.showSaveDialog(aFrame);
		if(returnValue==bFileChooser.APPROVE_OPTION)
	 {	
		fileName=bFileChooser.getSelectedFile().getName()+".png";
		filePaths=bFileChooser.getSelectedFile().getPath()+".png";
		try
		{
		saveImage();
		aFrame.setTitle(fileName+"-画图");
	    }
  	catch(Exception e1)
	   {
	    }
	  } 
	 }
	 else
	 {
 	  try
		{
		saveImage();
		aFrame.setTitle(fileName+"-画图");
	     }
  	 catch(Exception e1)
	    {
	     }
	 }
	}
	public void saveImage() throws Exception
	{
		
		Iterator writers=ImageIO.getImageWritersByFormatName("png");
		ImageWriter writer=(ImageWriter)writers.next();
		File f=new File(filePaths);
		ImageOutputStream ios=ImageIO.createImageOutputStream(f);
		writer.setOutput(ios);
		BufferedImage bi=new BufferedImage(aPanel.getWidth(),aPanel.getHeight(),BufferedImage.TYPE_INT_RGB);
		Graphics g=bi.createGraphics();
		
        //g.setColor(backColor);
        //g.fillRect(0,0,aPanel.getWidth(),aPanel.getHeight());
        //g.setColor(Color.black);
        
        aPanel.display(g);

		writer.write(bi);
	}
}		
public class NewListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	 {  
	    fileName="未命名";
	    filePaths="";
	    aFrame.setTitle(fileName+"-画图");
	    newState=1;
	    Graphicsnum=0;
	 	aPanel.repaint();
	 	newState=0;
	 	
	 }	
}	 
public class ColorListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	 {
	 	 preColor = aColorChooser.showDialog(aFrame,"Color Chooser",aPanel.getBackground());
	 	 colorButton.setBackground(preColor);
	 	 
	 }
}	
public class LargeListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		if(toolState==2)
		aPanel.lastLine();
		JOptionPane.showMessageDialog(aFrame, "放大镜功能未实现!");
		//JOptionPane.setFont(new Font("optionFont",Font.PLAIN,14));
	
		}
}
public class GetListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		if(toolState==2)
			aPanel.lastLine();
            toolState=10;
         	
         	Graphics g=dummyPanel.getGraphics();	
	        dummyPanel.repaint();             		
	}
}
public class IColorListener implements ActionListener
{
	
    public void actionPerformed(ActionEvent e)
    {
    	int red,green,blue,i;
    	red=255-backColor.getRed();
    	green=255-backColor.getGreen();
    	blue=255-backColor.getBlue();
    	backColor=new Color(red,green,blue);
    	for(i=1;i<=Graphicsnum;i++)
    	{
    		red=255-colorChoice[i].getRed();
    		green=255-colorChoice[i].getGreen();
    		blue=255-colorChoice[i].getBlue();
    		colorChoice[i]=new Color(red,green,blue);
    	}
    	aPanel.repaint();	
    }
	
}		 

public static void main(String[] arg)
 {
	new GraphicsPanel();
 }
}


           	    
  	    
  	    
  	                      

⌨️ 快捷键说明

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