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

📄 mywindowsplot.java

📁 java画图程序
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
				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);
					}
						    	
					//第二项限
					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);
				}
			}
		};

        contentPane.setLayout(BorderLayout1);
        contentPane.setBackground(bgColor);        
        setJMenuBar(jMenuBar1);
        setSize(new Dimension(750, 550));
        setTitle("WindowsPlot画图板");    
        MenuFile.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuFile.setText("文件(F)");
        MenuFile.setMnemonic('F');
        MenuNew.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuNew.setText("新建(N)");
        MenuNew.setAccelerator(KeyStroke.getKeyStroke('N', java.awt.Event.CTRL_MASK, false));
        MenuNew.setActionCommand("NewPage");
        MenuOpen.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuOpen.setText("打开(O)");
        MenuOpen.setAccelerator(KeyStroke.getKeyStroke('O', java.awt.Event.CTRL_MASK, false));
        MenuOpen.setActionCommand("MenuOpen");
        MenuSave.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuSave.setText("保存(S)");
        MenuSave.setAccelerator(KeyStroke.getKeyStroke('S', java.awt.Event.CTRL_MASK, false));
        MenuSave.setActionCommand("MenuSave");
        MenuSaveAs.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuSaveAs.setText("另存为(A)");
        MenuSaveAs.setAccelerator(KeyStroke.getKeyStroke('A', java.awt.Event.CTRL_MASK, false));
        MenuSaveAs.setActionCommand("MenuSaveAs");
        MenuExit.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuExit.setText("退出(E)");
        MenuExit.setAccelerator(KeyStroke.getKeyStroke('E', java.awt.Event.CTRL_MASK, false));
        MenuExit.setActionCommand("Exit");
        MenuSight.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuSight.setText("查看(V)");
        MenuSight.setMnemonic('V');
        MenuColor.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        tool.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        tool.setAccelerator(KeyStroke.getKeyStroke('T', java.awt.Event.CTRL_MASK, false));
        state.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        state.setAccelerator(KeyStroke.getKeyStroke('F', java.awt.Event.CTRL_MASK, false));
        MenuColor.setText("颜色(C)");
        MenuColor.setMnemonic('C');
        MenuEditColor.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuEditColor.setText("背景颜色(B)");
        MenuEditColor.setAccelerator(KeyStroke.getKeyStroke('B', java.awt.Event.CTRL_MASK, false));
        MenuEditColor.setActionCommand("EditColor");
        MenuEditPencilColor.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuEditPencilColor.setText("画笔颜色(P)");
        MenuEditPencilColor.setAccelerator(KeyStroke.getKeyStroke('P', java.awt.Event.CTRL_MASK, false));
        MenuEditPencilColor.setActionCommand("EditPencilColor"); 
        precedent.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        precedent.setText("示例(P)");
        precedent.setMnemonic('P');
        precedent1.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        precedent1.setText("示例一(G)");
        precedent1.setAccelerator(KeyStroke.getKeyStroke('G', java.awt.Event.CTRL_MASK, false));
        precedent2.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        precedent2.setText("示例二(H)");
        precedent2.setAccelerator(KeyStroke.getKeyStroke('H', java.awt.Event.CTRL_MASK, false));
        precedent1.setActionCommand("precedent1");
	    precedent2.setActionCommand("precedent2");   
        menuColour.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        menuColour.setText("风格(M)");  
        menuColour.setMnemonic('M');              
        itemNative.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        itemNative.setText("系统平台风格(Y)");
        itemNative.setAccelerator(KeyStroke.getKeyStroke('Y', java.awt.Event.CTRL_MASK, false));
        itemNative.setActionCommand("itemNative");
        itemMotif.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        itemMotif.setText("Motif风格(M)");
        itemMotif.setAccelerator(KeyStroke.getKeyStroke('M', java.awt.Event.CTRL_MASK, false));
        itemMotif.setActionCommand("itemMotif");
        itemMetal.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        itemMetal.setText("跨平台风格(Z)");
        itemMetal.setAccelerator(KeyStroke.getKeyStroke('Z', java.awt.Event.CTRL_MASK, false));
        itemMetal.setActionCommand("itemMetal");          
        MenuHelp.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuHelp.setText("帮助(H)");
        MenuHelp.setMnemonic('H');
        MenuHelpText.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuHelpText.setText("帮助主题(H)");
        MenuHelpText.setAccelerator(KeyStroke.getKeyStroke('H', java.awt.Event.CTRL_MASK, false));
        MenuHelpText.setActionCommand("MenuHelpText");
        MenuAbout.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        MenuAbout.setText("关于画图(C)");
        MenuAbout.setAccelerator(KeyStroke.getKeyStroke('C', java.awt.Event.CTRL_MASK, false));
        MenuAbout.setActionCommand("MenuAbout");
        jToolBar1.setFont(new java.awt.Font("宋体", Font.PLAIN, 13));
        jToolBar1.setFloatable(false);
        jToolBar1.setBounds(new Rectangle(1, 1, 767, 24));
        jbNew.setMaximumSize(new Dimension(29, 27));
        jbNew.setMinimumSize(new Dimension(29, 27));
        jbNew.setIcon(imageNew);
        jbNew.setActionCommand("jbNew");
        jbNew.setToolTipText("新建");
        jbSave.setMaximumSize(new Dimension(29, 27));
        jbSave.setMinimumSize(new Dimension(29, 27));
        jbSave.setIcon(imageSave);
        jbSave.setToolTipText("保存");
        jbSave.setActionCommand("jbSave");
        jbOpen.setMaximumSize(new Dimension(29, 27));
        jbOpen.setMinimumSize(new Dimension(29, 27));
        jbOpen.setIcon(imageOpen);
        jbOpen.setToolTipText("打开");
        jbOpen.setActionCommand("jbOpen");
        jbPencil.setMaximumSize(new Dimension(29, 27));
        jbPencil.setIcon(imageFill);
        jbPencil.setToolTipText("画笔");
        jbPencil.setMinimumSize(new Dimension(29, 27));
        jbBrush.setMaximumSize(new Dimension(29, 27));
        jbBrush.setToolTipText("擦皮");
        jbBrush.setIcon(imageBrush);
        jbBrush.setMinimumSize(new Dimension(29, 27));
        jbBeeline.setMaximumSize(new Dimension(29, 27));
        jbBeeline.setToolTipText("直线");
        jbBeeline.setIcon(imageBeeline);
        jbBeeline.setMinimumSize(new Dimension(29, 27));
        jbRotundity.setMaximumSize(new Dimension(29, 27));
        jbRotundity.setIcon(imageRotundity);
        jbRotundity.setToolTipText("圆");
        jbRotundity.setMinimumSize(new Dimension(29, 27));
        jbPolygon.setMaximumSize(new Dimension(29, 27));
        jbPolygon.setIcon(imagePolygon);
        jbPolygon.setToolTipText("多边形");
        jbPolygon.setMinimumSize(new Dimension(29, 27));
        jbRect.setMaximumSize(new Dimension(29, 27));
        jbRect.setIcon(imageRect);
        jbRect.setToolTipText("矩形");
        jbRect.setMinimumSize(new Dimension(29, 27));
        jbFillRotundity.setMaximumSize(new Dimension(29, 27));
        jbFillRotundity.setToolTipText("填充圆形");
        jbFillRotundity.setIcon(imageFillOval);
        jbFillRotundity.setMinimumSize(new Dimension(29, 27));
        jbFillRect.setMaximumSize(new Dimension(29, 27));
        jbFillRect.setToolTipText("填充矩形");
        jbFillRect.setIcon(imageFillRect);
        jbFillRect.setMinimumSize(new Dimension(29, 27));
        jbFillPolygon.setMaximumSize(new Dimension(29, 27));
        jbFillPolygon.setToolTipText("填充多边形");
        jbFillPolygon.setIcon(imageFillPolygon);
        jbFillPolygon.setMinimumSize(new Dimension(29, 27));       
        state.setSelected(true);
        jLabel1.setText("坐标: ");
        jLabel1.setBounds(new Rectangle(0, 526, 750, 24));
	    menuColour.add(itemNative);
		menuColour.add(itemMotif);
		menuColour.add(itemMetal);               
        jMenuBar1.add(MenuFile);
	    jMenuBar1.add(MenuSight);
	    jMenuBar1.add(MenuColor);
	    precedent.add(precedent1);
	    precedent.add(precedent2);
	    jMenuBar1.add(precedent);
	    jMenuBar1.add(menuColour);	    
	    jMenuBar1.add(MenuHelp);
	    MenuFile.add(MenuNew);
	    MenuFile.add(MenuOpen);
	    MenuFile.add(MenuSave);
	    MenuFile.add(MenuSaveAs);
	    MenuFile.addSeparator();
	    MenuFile.add(MenuExit);
	    MenuSight.add(tool);
	    MenuSight.add(state);
	    MenuColor.add(MenuEditColor);
	    MenuColor.add(MenuEditPencilColor);	    	    
	    MenuHelp.add(MenuHelpText);
	    MenuHelp.addSeparator();
	    MenuHelp.add(MenuAbout);	    
	    jToolBar1.add(jbNew);
	    jToolBar1.add(jbSave);
	    jToolBar1.add(jbOpen);
	    jToolBar1.addSeparator();
	    jToolBar1.add(jbPencil);
	    jToolBar1.add(jbBrush);
		jToolBar1.add(jbBeeline);
		jToolBar1.add(jbRotundity);
		jToolBar1.add(jbPolygon);
		jToolBar1.add(jbRect);
		jToolBar1.add(jbFillRotundity);
		jToolBar1.add(jbFillRect);
		jToolBar1.add(jbFillPolygon);
		this.add(jToolBar1, BorderLayout.NORTH);
		this.add(contentPane, BorderLayout.CENTER);				
		this.add(jLabel1, BorderLayout.SOUTH);
        
        //根据选择状态进行绘图如:是否为直线,是否画圆等()
        cbg = new ButtonGroup();
        cbg.add(jbPencil);
        cbg.add(jbBrush);
        cbg.add(jbBeeline);
        cbg.add(jbRotundity);
        cbg.add(jbPolygon);
        cbg.add(jbRect);
        cbg.add(jbFillRotundity);
        cbg.add(jbFillRect);
        cbg.add(jbFillPolygon);
        
        //根据"查看"菜单下的项目选择状态而动态加载工具栏
        tool.setSelected(true);

        //以下为 JCheckBoxMenuItem 事件
        miListener = new MyItemListener();
        tool.addItemListener(miListener);
        state.addItemListener(miListener);

        //以下代码为增加事件
        maListener = new MyActionListener();
 		MenuExit.addActionListener(maListener);
        MenuNew.addActionListener(maListener);
        MenuEditColor.addActionListener(maListener);
        MenuEditPencilColor.addActionListener(maListener);
        jbNew.addActionListener(maListener);
        MenuSave.addActionListener(maListener);
        MenuSaveAs.addActionListener(maListener);
        MenuOpen.addActionListener(maListener);
        MenuAbout.addActionListener(maListener);
        jbPencil.addActionListener(maListener);
        jbBrush.addActionListener(maListener);
        jbBeeline.addActionListener(maListener);
        jbRotundity.addActionListener(maListener);
        jbPolygon.addActionListener(maListener);
        jbRect.addActionListener(maListener);
        jbFillRotundity.addActionListener(maListener);
        jbFillRect.addActionListener(maListener);
        jbFillPolygon.addActionListener(maListener);        
        jbSave.addActionListener(maListener);
        jbOpen.addActionListener(maListener);
        MenuHelpText.addActionListener(maListener);
        precedent1.addActionListener(maListener);
        precedent2.addActionListener(maListener);
        itemNative.addActionListener(maListener);
        itemMotif.addActionListener(maListener);
        itemMetal.addActionListener(maListener);
		
        contentPane.addMouseMotionListener(new MouseMotionAdapter()
        {
        	public void mouseMoved(MouseEvent e)
        	{
        		jLabel1.setText("坐标:" + " " + e.getX() + "  " + e.getY());
        	}
        });
        
        contentPane.addMouseListener(new MouseAdapter()
		{
			public void mouseEntered(MouseEvent evt)

⌨️ 快捷键说明

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