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

📄 mywindowsplot.java

📁 java画图程序
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
							//第二项限
							if (mousePressedDrawRectX[i] < mouseReleasedDrawRectX[i] && mousePressedDrawRectY[i] > mouseReleasedDrawRectY[i])
							{
								g2D.draw3DRect(mousePressedDrawRectX[i], mouseReleasedDrawRectY[i], 
								   	mouseReleasedDrawRectX[i] - mousePressedDrawRectX[i], mousePressedDrawRectY[i] - mouseReleasedDrawRectY[i], true);
							}
								    	
							//第三项限
							if (mousePressedDrawRectX[i] > mouseReleasedDrawRectX[i] && mousePressedDrawRectY[i] > mouseReleasedDrawRectY[i])
							{
								g2D.draw3DRect(mouseReleasedDrawRectX[i], mouseReleasedDrawRectY[i], 
								   	mousePressedDrawRectX[i] - mouseReleasedDrawRectX[i], mousePressedDrawRectY[i] - mouseReleasedDrawRectY[i], true);
							}
								    	
							//第四项限
							if (mousePressedDrawRectX[i] > mouseReleasedDrawRectX[i] && mousePressedDrawRectY[i] < mouseReleasedDrawRectY[i])
							{
								g2D.draw3DRect(mouseReleasedDrawRectX[i], mousePressedDrawRectY[i],
								  	mousePressedDrawRectX[i] - mouseReleasedDrawRectX[i], mouseReleasedDrawRectY[i] - mousePressedDrawRectY[i], true);	
							}
						}
				
						//绘填充矩形
						for (int i = 0; i < countFillRect; i++)
						{
							g2D.setColor(fillRectColor[i]);
							//第一项限
							if (mousePressedFillRectX[i] < mouseReleasedFillRectX[i] && mousePressedFillRectY[i] < mouseReleasedFillRectY[i])
							{	    	
								g2D.fill3DRect(mousePressedFillRectX[i], mousePressedFillRectY[i], 
								   	mouseReleasedFillRectX[i] - mousePressedFillRectX[i], mouseReleasedFillRectY[i] - mousePressedFillRectY[i], true);
							}
								    	
							//第二项限
							if (mousePressedFillRectX[i] < mouseReleasedFillRectX[i] && mousePressedFillRectY[i] > mouseReleasedFillRectY[i])
							{
								g2D.fill3DRect(mousePressedFillRectX[i], mouseReleasedFillRectY[i], 
								   	mouseReleasedFillRectX[i] - mousePressedFillRectX[i], mousePressedFillRectY[i] - mouseReleasedFillRectY[i], true);
							}
								    	
							//第三项限
							if (mousePressedFillRectX[i] > mouseReleasedFillRectX[i] && mousePressedFillRectY[i] > mouseReleasedFillRectY[i])
							{
								g2D.fill3DRect(mouseReleasedFillRectX[i], mouseReleasedFillRectY[i], 
								   	mousePressedFillRectX[i] - mouseReleasedFillRectX[i], mousePressedFillRectY[i] - mouseReleasedFillRectY[i], true);
							}
								    	
							//第四项限
							if (mousePressedFillRectX[i] > mouseReleasedFillRectX[i] && mousePressedFillRectY[i] < mouseReleasedFillRectY[i])
							{
								g2D.fill3DRect(mouseReleasedFillRectX[i], mousePressedFillRectY[i],
								  	mousePressedFillRectX[i] - mouseReleasedFillRectX[i], mouseReleasedFillRectY[i] - mousePressedFillRectY[i], true);	
							}
						}
					  	
						//绘多边形
						g2D.setColor(pColor);
						g2D.drawPolygon(mousePressedDrawPolygonX, mousePressedDrawPolygonY, countDrawPolygon);
				
						//填充多边形
						g2D.fillPolygon(mousePressedFillPolygonX, mousePressedFillPolygonY, countFillPolygon);
						
						//绘制画笔
						g2D.draw(gPath);
				
						//绘制擦皮
						for (int i = 0; i < countDrawBrush; i++)
						{
							g2D.setColor(bgColor);
							g2D.fillOval(mouseDrawBrushX[i] - 3, mouseDrawBrushY[i] - 3, 6, 6);
						}
					}
				};			
			    add(contentPane, BorderLayout.CENTER);
			    contentPane.setBackground(bgColor);
			    
			    contentPane.addMouseMotionListener(new MouseMotionAdapter()
		        {
		        	public void mouseMoved(MouseEvent e)
		        	{
		        		jLabel1.setText("坐标:" + " " + e.getX() + "  " + e.getY());
		        	}
		        });
		        
		        contentPane.addMouseListener(new MouseAdapter()
				{
					public void mouseEntered(MouseEvent evt)
					{
						//改变鼠标指针的样式
						contentPane.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
					}
				});
				repaint();
        	}

        	else if (e.getActionCommand() == "MenuSave" || e.getActionCommand() == "jbSave")
        	{
        		//显示保存对话框,将文件保存
				MyFileChooser JFileChooser1 = new MyFileChooser();
				int i = JFileChooser1.showSaveDialog(contentPane);

				if (i == JFileChooser.APPROVE_OPTION)
				{				
					File fileName = JFileChooser1.getSelectedFile();
					saveComponentToJPEG(contentPane, fileName.toString());
				}
        	}

        	else if (e.getActionCommand() == "MenuSaveAs")
        	{
        		//显示另存为对话框,将文件保存
				MyFileChooser JFileChooser2 = new MyFileChooser();
				int i = JFileChooser2.showSaveDialog(contentPane);

				if (i == JFileChooser.APPROVE_OPTION)
				{
					File fileName = JFileChooser2.getSelectedFile();
					saveComponentToJPEG(contentPane, fileName.toString());
				}
        	}

        	else if (e.getActionCommand() == "MenuOpen" || e.getActionCommand() == "jbOpen")
        	{
        		//显示打开对话框,并将文件内容加载到面板上
        		JFileChooser swingDialog = new JFileChooser();
				swingDialog.setMultiSelectionEnabled(true);
				
 				swingDialog.setFileFilter(new FileFilter()
 				{ 
 					public String getDescription()
 					{ 
 						return "JPG and GIF Images"; 
 					} 
 			
 					public boolean accept(File f)
 					{ 
 						String name; 
 						if (f.isDirectory())
 							return true; 
 						name = f.getName().toLowerCase(); 
 						if (name.endsWith(".jpg") || name.endsWith(".jpeg") || name.endsWith(".gif")) 
 							return true; 
 						else 
 							return false; 
 					} 
 				}); 
 				
 				int result = swingDialog.showOpenDialog(contentPane); 
 				
 				if (result != JFileChooser.APPROVE_OPTION)
 					return; 
  
 				selFiles = swingDialog.getSelectedFile(); 
 				
 				//在控制台显示文件路径
 				System.out.println(selFiles.toString());
 				img = Toolkit.getDefaultToolkit().getImage(selFiles.toString());
 				contentPaneOpenPic();
        	}

        	else if (e.getActionCommand() == "MenuAbout")
        	{
        		//显示关于对话框
        		String aboutStr = "WindowsPlot 画图\n版本:  1.0\n版权所有:  南京普雷信息培训中心\n制作人:  刘涛\n指导教师:  毛其林";
        		JOptionPane.showMessageDialog(MyWindowsPlot.this, aboutStr, "关于画图",
        			JOptionPane.OK_OPTION, imageAbout);
        	}
        	
        	else if (e.getActionCommand() == "precedent1")
        	{
        		precedentOne();
        	}
        	
        	else if (e.getActionCommand() == "precedent2")
        	{
        		precedentTwo();
        	}

        	else if (e.getActionCommand() == "EditColor")
        	{
        		//显示颜色对话框
        		//参数contentPane为颜色对话框显示时与contentPane控件对齐
        		//参数color为返回的颜色值
				bgColor = JColorChooser.showDialog(contentPane, "调色板", bgColor);
				//设置画板的背景颜色
				contentPane.setBackground(bgColor);
        	}

        	else if (e.getActionCommand() == "EditPencilColor")
        	{
				pColor = JColorChooser.showDialog(contentPane, "调色板", pColor);
				repaint();
        	}
			
			else if (e.getActionCommand() == "itemNative")
			{
				changeLookAndFeel("Native");
			}
			
			else if (e.getActionCommand() == "itemMotif")
			{
				changeLookAndFeel("Motif");
			}
			
			else if (e.getActionCommand() == "itemMetal")
			{
				changeLookAndFeel("Metal");
			}
			
        	else if (e.getActionCommand() == "MenuHelpText")
        	{
        		//打开帮助文件
        		try
        		{
					Runtime r = Runtime.getRuntime();
					//hh.exe 为打开.chm文件必须的程序
					r.exec("hh.exe MyHelp\\WindowsPolt.chm");
        		}
        		catch(Exception err)
        		{
        			System.out.println(err.getMessage());
        		}
        	}

		    else if (e.getSource() == jbPencil)
		    {
		    	//使用画笔
		    	drawPencil();
		    }

		   	else if (e.getSource() == jbBrush)
		    {
		    	//使用刷子
		    	drawBrush();
		    }

		    else if (e.getSource() == jbBeeline)
		    {
		    	//开始绘直线
	        	drawLine();
		    }

		   	else if (e.getSource() == jbRotundity)
		    {
		    	//开始绘圆
		    	drawOval();
		    }

		    else if (e.getSource() == jbPolygon)
		    {
		    	//开始绘多边形
		    	drawPolygon();
		    }

		    else if (e.getSource() == jbRect)
		    {
		    	//开始绘矩形
		    	drawRect();
		    }

		    else if (e.getSource() == jbFillRotundity)
		    {
		    	//开始填充圆
		    	fillOval();
		    }
		    
		    else if (e.getSource() == jbFillRect)
		    {
		    	//开始填充矩形
		    	fillRect();
		    }
		    
		    else if (e.getSource() == jbFillPolygon)
		    {
		    	//开始填充多边形
		    	fillPolygon();
		    }
        }

        //使用画笔
        public void drawPencil()
        {
        	contentPane.removeMouseListener(mlOneFillPolygon);
        	contentPane.removeMouseListener(mlOneFillOval);
  			contentPane.removeMouseListener(mlTwoFillOval);
  			contentPane.removeMouseMotionListener(mmlFillOval);
        	contentPane.removeMouseListener(mlOneFillRect);
        	contentPane.removeMouseListener(mlTwoFillRect);
        	contentPane.removeMouseMotionListener(mmlFillRect);
        	contentPane.removeMouseListener(mlOneDrawPencil);
			contentPane.removeMouseMotionListener(mmlDrawPencil);
			contentPane.removeMouseListener(mlOneDrawRect);
			contentPane.removeMouseListener(mlTwoDrawRect);
			contentPane.removeMouseMotionListener(mmlDrawRect);
			contentPane.removeMouseListener(mlOneDrawOval);
			contentPane.removeMouseListener(mlTwoDrawOval);
			contentPane.removeMouseMotionListener(mmlDrawOval);
			contentPane.removeMouseListener(mlOneDrawPolygon);
			contentPane.removeMouseListener(mlOneDrawLine);
        	contentPane.removeMouseListener(mlTwoDrawLine); 
        	contentPane.removeMouseListener(mlOneDrawBrush);
			contentPane.removeMouseMotionListener(mmlDrawBrush); 
			
			mlOneDrawPencil = new MouseAdapter()
			{
				public void mousePressed(MouseEvent e)
				{
					pencilPoint = e.getPoint();
					gPath.moveTo(pencilPoint.x, pencilPoint.y);
				}
			};
			
			mmlDrawPencil = new MouseMotionAdapter()
			{
				public void mouseDragged(MouseEvent e)
				{
					pencilPoint = e.getPoint(); //得到当前鼠标点	        		
					gPath.lineTo(pencilPoint.x, pencilPoint.y); //设置路径
					gPath.moveTo(pencilPoint.x, pencilPoint.y);
					repaint();
				}
			};
			
			contentPane.addMouseListener(mlOneDrawPencil);
			contentPane.addMouseMotionListener(mmlDrawPencil);

⌨️ 快捷键说明

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