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

📄 mywindowsplot.java

📁 java画图程序
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			{
				//改变鼠标指针的样式
				contentPane.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
			}
		});

        this.addComponentListener(new ComponentAdapter()
        {
       		public void componentResized(ComponentEvent e)
       		{
       			repaint();
       		}
       	});   	  	
    }
	
    class MyActionListener implements ActionListener
    {   	
		public void contentPaneOpenPic()
		{
			initialization();
			
			contentPane = new JPanel()
			{
				public void paintComponent(Graphics g)
				{
					super.paintComponent(g);

					if (img != null)
					{					
						g.drawImage(img, 0, 0, contentPane.getWidth(), contentPane.getHeight(), contentPane);
					}
				}
			};
			add(contentPane, BorderLayout.CENTER);
			repaint();
			
			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.HAND_CURSOR));
				}
			});
			repaint();
		}
		
		public void precedentOne()
		{
			myRemove(contentPane);
		
			contentPane = new JPanel()
			{
				public void paintComponent(Graphics g)
				{
					super.paintComponent(g);
					int i, j;
					Font f = new Font("TimesRoman", Font.BOLD, 14);
					g.setColor(Color.pink);
					
					for (i = 0; i < getHeight(); i += 20)
					{
						g.drawLine(0, i, getWidth(), i);
					}
			
					for (j = 0; j < getWidth(); j += 20)
					{
						g.drawLine(j, 0 , j, getHeight());
					}		
					g.setFont(f);
					g.setColor(Color.red);
					g.drawString("hello the world!", 20, 20);
					g.drawRect(getWidth() / 2 - 50, getHeight() / 2, 100, 100);
					g.drawArc(getWidth() / 2 - 50, getHeight() / 2, 100, 100, 0, 360);
					g.setColor(Color.green);
					g.drawOval(30, 30, 80, 60);
					g.fillOval(250, 30, 80, 60);
					g.setColor(Color.yellow);
					g.fill3DRect(30, 200, 80, 60, false);
					g.setColor(Color.blue);
					g.fill3DRect(250, 200, 80, 60, true);
				}
			};
			myAdd(contentPane);		
			
			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.HAND_CURSOR));
				}
			});
			repaint();
		}

		public void precedentTwo()
		{
			myRemove(contentPane);

			contentPane = new JPanel()
			{
				public void paintComponent(Graphics g)
				{	
					super.paintComponent(g); //调用父类的绘制组件方法
					Graphics2D g2D = (Graphics2D)g;
					setBackground(Color.white);
					setForeground(Color.black);
						
					int charH = 16; //最大字符高度		
					int gridW = getWidth() / 5; //绘图网格宽度
					int gridH = getHeight() / 4; //绘图网格高度
					int posX = 2; //各图形绘制位置的x坐标
					int posY = 2; //各图形位置的y坐标
					int strY = gridH - 7; //字符串绘制位置的y坐标
					int w = gridW - 2 * posX; //图形的宽度
					int h = strY - charH - posY; //图形的高度
					int cirlceD = Math.min(w, h); //圆的直径
						
					Shape[][] shape = new Shape[2][5];			
					shape[0][0] = new Line2D.Float(0, 0, w, h); //直线
					shape[0][1] = new Rectangle2D.Double(0, 0, w, h); //矩形
					shape[0][2] = new RoundRectangle2D.Float(0, 0, w, h, 20, 20); //圆角矩形
					shape[0][3] = new Ellipse2D.Float(0, 0, cirlceD, cirlceD); //圆
					shape[0][4] = new Ellipse2D.Float(0, 0, w, h); //椭圆
					shape[1][0] = new Arc2D.Float(0, 0, w, h, 45, 225, Arc2D.OPEN); //开弧
					shape[1][1] = new Arc2D.Float(0 , 0, w, h, 45, 225, Arc2D.CHORD); //弓形
					shape[1][2] = new Arc2D.Float(0, 0, w, h, 45, 225, Arc2D.PIE); //饼形
					shape[1][3] = new QuadCurve2D.Double(0, 0, w, h/6, w, h); //二次曲线
					shape[1][4] = new CubicCurve2D.Double(0, 0, w/2, h, w, h/2, w, h); //三次曲线
						
					//绘制几何图形的名称
					String[][] shapeName = {{"直线","矩形","圆角矩形","圆","椭圆"},
						{"开弧","弓形","饼形","二次曲线","三次曲线"}};
			
					AffineTransform defaultAT = g2D.getTransform();
			
					for (int i = 0; i < shapeName.length; i++)
					{
						for (int j = 0; j < shape[i].length; j++)
						{
							g2D.setColor(Color.black);
							g2D.translate(posX,posY);  //坐标平移
							g2D.draw(shape[i][j]);
							g2D.setColor(Color.blue);
							g2D.drawString(shapeName[i][j], 2, strY); //绘制说明文字
							g2D.setTransform(defaultAT);
							posY += gridH;
							g2D.translate(posX,posY);
							g2D.setColor(Color.pink);
							g2D.fill(shape[i][j]);
							g2D.setColor(Color.blue);
							g2D.drawString("填充" + shapeName[i][j], 2, strY); //文字
							g2D.setTransform(defaultAT);
							posX += gridW;
							posY -= gridH;
						}
						posX = 2;
						posY += 2 * gridH;
					}
				}
			};
			myAdd(contentPane);
			
			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.HAND_CURSOR));
				}
			});
			repaint();
		}
    	
    	//重新初始化变量
    	public void initialization()
    	{  	    		
			remove(contentPane);
			gPath = new GeneralPath();
			bgColor = new Color (255, 255, 255);
			pColor = new Color (0, 0, 0);
			countDrawBrush = 0;
			countDrawLine = 0;	
			countDrawRect = 0;
			mouseDraggedDrawRectX = 0; mouseDraggedDrawRectY = 0;					
			countDrawOval = 0;
			mouseDraggedDrawOvalX = 0; mouseDraggedDrawOvalY = 0;						
			countDrawPolygon = 0;
			countFillOval = 0;
			mouseDraggedFillOvalX = 0; mouseDraggedFillOvalY = 0;
			countDrawPolygon = 0;
			countFillPolygon = 0;
			countFillRect = 0;
			mouseDraggedFillRectX = 0; mouseDraggedFillRectY = 0;
			jLabel1.setText("坐标:");
    	}
    	
    	public void actionPerformed(ActionEvent e)
        {
        	if (e.getActionCommand() == "Exit")
        	{
        		System.exit(0);
        	}

        	else if (e.getActionCommand() == "jbNew" || e.getActionCommand() == "NewPage")
        	{				
				initialization();
				
				contentPane = new JPanel()
        		{
					public void paintComponent(Graphics g)
					{
						super.paintComponent(g);
						Graphics2D g2D = (Graphics2D)g;
				    	
						//绘直线
						for (int i = 0; i < countDrawLine; i++)
						{
							g2D.setColor(drawLineColor[i]);					
							g2D.drawLine(mousePressedDrawLineX[i], mousePressedDrawLineY[i],
								mouseReleasedDrawLineX[i], mouseReleasedDrawLineY[i]);	    	
						}
					    
						//绘圆
						for (int i = 0; i < countDrawOval; i++)
						{
							g2D.setColor(drawOvalColor[i]);	
							//第一项限
							if (mousePressedDrawOvalX[i] < mouseReleasedDrawOvalX[i] && mousePressedDrawOvalY[i] < mouseReleasedDrawOvalY[i])
							{	    	
								g2D.drawOval(mousePressedDrawOvalX[i], mousePressedDrawOvalY[i], 
							   		mouseReleasedDrawOvalX[i] - mousePressedDrawOvalX[i], mouseReleasedDrawOvalY[i] - mousePressedDrawOvalY[i]);
							}
							    	
							//第二项限
							if (mousePressedDrawOvalX[i] < mouseReleasedDrawOvalX[i] && mousePressedDrawOvalY[i] > mouseReleasedDrawOvalY[i])
							{
								g2D.drawOval(mousePressedDrawOvalX[i], mouseReleasedDrawOvalY[i], 
							   		mouseReleasedDrawOvalX[i] - mousePressedDrawOvalX[i], mousePressedDrawOvalY[i] - mouseReleasedDrawOvalY[i]);
							}
							    	
							//第三项限
							if (mousePressedDrawOvalX[i] > mouseReleasedDrawOvalX[i] && mousePressedDrawOvalY[i] > mouseReleasedDrawOvalY[i])
							{
								g2D.drawOval(mouseReleasedDrawOvalX[i], mouseReleasedDrawOvalY[i], 
							   		mousePressedDrawOvalX[i] - mouseReleasedDrawOvalX[i], mousePressedDrawOvalY[i] - mouseReleasedDrawOvalY[i]);
							}
							    	
							//第四项限
							if (mousePressedDrawOvalX[i] > mouseReleasedDrawOvalX[i] && mousePressedDrawOvalY[i] < mouseReleasedDrawOvalY[i])
							{
							   	g2D.drawOval(mouseReleasedDrawOvalX[i], mousePressedDrawOvalY[i],
							   		mousePressedDrawOvalX[i] - mouseReleasedDrawOvalX[i], mouseReleasedDrawOvalY[i] - mousePressedDrawOvalY[i]);	
							}
						}
				
						//绘填充圆
						for (int i = 0; i < countFillOval; i++)
						{
							g2D.setColor(fillOvalColor[i]);	
							//第一项限
							if (mousePressedFillOvalX[i] < mouseReleasedFillOvalX[i] && mousePressedFillOvalY[i] < mouseReleasedFillOvalY[i])
							{	    	
								g2D.fillOval(mousePressedFillOvalX[i], mousePressedFillOvalY[i], 
							   		mouseReleasedFillOvalX[i] - mousePressedFillOvalX[i], mouseReleasedFillOvalY[i] - mousePressedFillOvalY[i]);
							}
							    	
							//第二项限
							if (mousePressedFillOvalX[i] < mouseReleasedFillOvalX[i] && mousePressedFillOvalY[i] > mouseReleasedFillOvalY[i])
							{
								g2D.fillOval(mousePressedFillOvalX[i], mouseReleasedFillOvalY[i], 
							   		mouseReleasedFillOvalX[i] - mousePressedFillOvalX[i], mousePressedFillOvalY[i] - mouseReleasedFillOvalY[i]);
							}
							    	
							//第三项限
							if (mousePressedFillOvalX[i] > mouseReleasedFillOvalX[i] && mousePressedFillOvalY[i] > mouseReleasedFillOvalY[i])
							{
								g2D.fillOval(mouseReleasedFillOvalX[i], mouseReleasedFillOvalY[i], 
							   		mousePressedFillOvalX[i] - mouseReleasedFillOvalX[i], mousePressedFillOvalY[i] - mouseReleasedFillOvalY[i]);
							}
							    	
							//第四项限
							if (mousePressedFillOvalX[i] > mouseReleasedFillOvalX[i] && mousePressedFillOvalY[i] < mouseReleasedFillOvalY[i])
							{
							   	g2D.fillOval(mouseReleasedFillOvalX[i], mousePressedFillOvalY[i],
							   		mousePressedFillOvalX[i] - mouseReleasedFillOvalX[i], mouseReleasedFillOvalY[i] - mousePressedFillOvalY[i]);	
							}
						}
					
						//绘矩形
						for (int i = 0; i < countDrawRect; i++)
						{
							g2D.setColor(drawRectColor[i]);
							//第一项限
							if (mousePressedDrawRectX[i] < mouseReleasedDrawRectX[i] && mousePressedDrawRectY[i] < mouseReleasedDrawRectY[i])
							{	    	
								g2D.draw3DRect(mousePressedDrawRectX[i], mousePressedDrawRectY[i], 
								   	mouseReleasedDrawRectX[i] - mousePressedDrawRectX[i], mouseReleasedDrawRectY[i] - mousePressedDrawRectY[i], true);
							}
								    	

⌨️ 快捷键说明

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