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

📄 painter.java

📁 绘图程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
 		public void mouseReleased(MouseEvent e) {
 	//		repaint();
    	}
    }
    class SC implements ActionListener {            //设置颜色的响应
 		public void actionPerformed(ActionEvent e){
 			color = JColorChooser.showDialog(Painter.this,"选择颜色",color);

		    if(color == null )
		    	color = Color.black;

		    showColor.setBackground(color);
	     }
	}

	class SBg implements ActionListener {            //设置背景颜色的响应
 		public void actionPerformed(ActionEvent e){
 			Bgcolor = JColorChooser.showDialog(Painter.this,"Choose a color",color);

		    if(Bgcolor == null )
		    	Bgcolor = Color.white;

		    showBgColor.setBackground(Bgcolor);
		    paintArea.setBackground(Bgcolor);

		    try{
	 			Graphics gBuffer = imBuffer.getGraphics();
	 			gBuffer.setColor(Bgcolor);
	 			gBuffer.fillRect(0,0,paintArea.getWidth(),paintArea.getHeight());
 			}
	 		catch(Exception e1){
	 			System.out.println("ERROR!");
			}
	     }
	}

	class F implements ActionListener {            //设置是否填充的响应
 		public void actionPerformed(ActionEvent e){
 			if(fill.isSelected())
 			{
 				isFill = true;
 			}
 			else
 			{
 				isFill = false;
 			}
 		}
 	}


    public void Open()							//设置打开文件的响应
 	{
 /*			File fil = new File("save.jpg");
 			try{
				imBuffer = (Image)ImageIO.read(fil);
				Graphics gPaintArea = paintArea.getGraphics();
 				gPaintArea.drawImage(imBuffer,0,0,paintArea);
			}
			catch(Exception e1){
				System.out.println(e1);
			}
*/
     JFileChooser fileChooser=new JFileChooser();
     fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
     int result =fileChooser.showOpenDialog(this);
     if(result==JFileChooser.CANCEL_OPTION)
           return ;
     File fileName=fileChooser.getSelectedFile();
     fileName.canRead();
     if (fileName==null||fileName.getName().equals(""))
     {
        JOptionPane.showMessageDialog(fileChooser,"Invalid File Name","Invalid File Name", JOptionPane.ERROR_MESSAGE);
	 }
     else {
       try {
 				imBuffer = (Image)ImageIO.read(fileName);
 				Graphics gPaintArea = paintArea.getGraphics();
 				gPaintArea.drawImage(imBuffer,0,0,paintArea);
       }
       catch(IOException ioe)
        {
          ioe.printStackTrace();
        }
	}
}
	public void Save()                                   //设置保存的响应
	{

 /*			File fil = new File("save.jpg");
 			RenderedImage img = (RenderedImage)imBuffer;
 			try{
				ImageIO.write(img,"jpg",fil);
			}
			catch(Exception e1){
				System.out.println(e1);
			}
*/
     JFileChooser fileChooser=new JFileChooser();
     fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
     int result =fileChooser.showSaveDialog(this);
     if(result==JFileChooser.CANCEL_OPTION)
              return ;
     File fileName=fileChooser.getSelectedFile();
     fileName.canWrite();

     if (fileName==null||fileName.getName().equals(""))
     {
     	JOptionPane.showMessageDialog(fileChooser,"Invalid File Name","Invalid File Name", JOptionPane.ERROR_MESSAGE);
	 }
     else{
		RenderedImage img = (RenderedImage)imBuffer;
		try{
		   	ImageIO.write(img,"jpg",fileName);
		}
		catch(Exception e1){
			System.out.println(e1);
		}
 	}
}

 	class Mouse1 extends MouseAdapter {
 		public void mousePressed(MouseEvent e) {
			statusBar.setText("     Mouse Pressed at:[ " + e.getX() + " , " + e.getY() + " ]");//设置状态提示
 			pressX = e.getX();
 			pressY = e.getY();
 			first = true;
 			String str;
 			Graphics g = paintArea.getGraphics();
 			g.setColor(color);

 			try{
 				Graphics gBuffer = imBuffer.getGraphics();
 				gBuffer.setColor(color);

	 			if(shapeFlag == 5)
	 			{
					realSize = 14;
	 				str = content.getText();
	 				Font font = new Font(str,Font.PLAIN,realSize);   //设置字体大小
	 				g.setFont(font);
	 				gBuffer.setFont(font);
	 				g.drawString(str,e.getX(),e.getY());
	 				gBuffer.drawString(str,e.getX(),e.getY());
	 			}
	 		}
	 		catch(Exception e1){
 			    System.out.println("ERROR!");
	 		}
 		}

 		public void mouseReleased(MouseEvent e) {
			statusBar.setText("     Mouse Released at:[ " + e.getX() +" , " + e.getY() + " ]");//设置状态提示
 			Graphics g = paintArea.getGraphics();
 			g.setColor(color);

 			try{
 				Graphics gBuffer = imBuffer.getGraphics();
 				gBuffer.setColor(color);

	 			if(shapeFlag == 1)
	 			{
	 				if(!isFill)
	 				{
	 					g.drawOval(pressX,pressY,e.getX()-pressX,e.getX()-pressX);
	 					gBuffer.drawOval(pressX,pressY,e.getX()-pressX,e.getX()-pressX);
	 				}
	 				else
	 				{
	 					g.fillOval(pressX,pressY,e.getX()-pressX,e.getX()-pressX);
	 					gBuffer.fillOval(pressX,pressY,e.getX()-pressX,e.getX()-pressX);
	 				}
	 			}
	 			if(shapeFlag == 2)
	 			{
	 				if(!isFill)
	 				{
	 					g.drawOval(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 					gBuffer.drawOval(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 				}
	 				else
	 				{
	 					g.fillOval(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 					gBuffer.fillOval(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 				}
	 			}
	 			if(shapeFlag == 3)
	 			{
	 				g.drawLine(pressX,pressY,e.getX(),e.getY());
	 				gBuffer.drawLine(pressX,pressY,e.getX(),e.getY());
	 			}
	 			if(shapeFlag == 4)
	 			{
	 				if(!isFill)
	 				{
	 					g.drawRect(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 					gBuffer.drawRect(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 				}
	 				else
	 				{
	 					g.fillRect(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 					gBuffer.fillRect(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 				}
	 			}
	 		}
 			catch(Exception e1){
 			    System.out.println("ERROR!");
 			}
 		}
 	}

 	class Mouse2 extends MouseMotionAdapter {
		public void mouseMoved(MouseEvent e) {
			statusBar.setText("     Mouse Moved at:[ " + e.getX() +" , " + e.getY() + " ]");
		}
 		public void mouseDragged (MouseEvent e) {
			statusBar.setText("     Mouse Dragged at:[ " + e.getX() +" , " + e.getY() + " ]");
 			Graphics g = paintArea.getGraphics();
 			g.setColor(color);
 			Graphics gBuffer = imBuffer.getGraphics();
 			gBuffer.setColor(color);
			if(shapeFlag == 6)                       //铅笔随意画方式
 			{
				if(first)
				{
	 				oldX = pressX;
	 				oldY = pressY;
				}
				g.drawLine(oldX,oldY,e.getX(),e.getY());
				gBuffer.drawLine(oldX,oldY,e.getX(),e.getY());
 			}
 			g.setXORMode(new Color(255,255,255));    //异或模式

 			if(shapeFlag == 1)                       //画圆
 			{
 				if(!isFill)
 				{
	 				if(!first)
	 				{
	 					g.drawOval(pressX,pressY,oldX-pressX,oldX-pressX);
	 				}
	 				g.drawOval(pressX,pressY,e.getX()-pressX,e.getX()-pressX);
	 			}
	 			else
	 			{
	 				if(!first)
	 				{
	 					g.fillOval(pressX,pressY,oldX-pressX,oldX-pressX);
	 				}
	 				g.fillOval(pressX,pressY,e.getX()-pressX,e.getX()-pressX);
	 			}
 			}
 			if(shapeFlag == 2)                       //画椭圆
 			{
 				if(!isFill)
 				{
	 				if(!first)
	 				{
	 					g.drawOval(pressX,pressY,oldX-pressX,oldY-pressY);
	 				}
	 				g.drawOval(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 			}
	 			else
	 			{
	 				if(!first)
	 				{
	 					g.fillOval(pressX,pressY,oldX-pressX,oldY-pressY);
	 				}
	 				g.fillOval(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 			}
 			}
 			if(shapeFlag == 3)                        //画直线
 			{
 				if(!first)
 				{
 					g.drawLine(pressX,pressY,oldX,oldY);
 				}
 				g.drawLine(pressX,pressY,e.getX(),e.getY());
 			}
 			if(shapeFlag == 4)                        //画矩形
 			{
 				if(!isFill)
 				{
	 				if(!first)
	 				{
	 					g.drawRect(pressX,pressY,oldX-pressX,oldY-pressY);
	 				}
	 				g.drawRect(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 			}
	 			else
	 			{
	 				if(!first)
	 				{
	 					g.fillRect(pressX,pressY,oldX-pressX,oldY-pressY);
	 				}
	 				g.fillRect(pressX,pressY,e.getX()-pressX,e.getY()-pressY);
	 			}
 			}

 			oldX = e.getX();
 			oldY = e.getY();

 			first = false;
 		}
 	}

 	public static void main(String[] args) {
	    Painter p = new Painter();
	    p.setLayout();
	    p.setVisible(true) ;
    }

}

⌨️ 快捷键说明

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