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

📄 menupane.java

📁 一个简易的java画图软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

				@Override
				public void actionPerformed(ActionEvent e) {
					fig.rotate(-90);
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":向左旋转90度");
					gbc.repaint();
				}

			};
			Action rotateRedoAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					fig.rotateRedo();
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":重置旋转");
					gbc.repaint();
				}

			};

			rotate90.addActionListener(rotate90Action);
			rotate270.addActionListener(rotate270Action);
			rotateRedo.addActionListener(rotateRedoAction);
		}

		JMenu shearM = new JMenu("切变");
		shearM.setEnabled(fig.getID() != AbstractFiguare.STRAIGHT_LINE);
		if (fig.getID() != AbstractFiguare.STRAIGHT_LINE)
			popmenu.add(shearM);
		{
			JMenuItem rightShear = new JMenuItem("向右切变");
			JMenuItem leftShear = new JMenuItem("向左切变");
			JMenuItem redoShear = new JMenuItem("重置切变");

			shearM.add(rightShear);
			shearM.add(leftShear);
			shearM.add(redoShear);

			Action rightShearAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					fig.rightShear();
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":向右切变");
					gbc.repaint();
				}
			};

			Action leftShearAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					fig.leftShear();
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":向左切变");
					gbc.repaint();
				}
			};

			Action redoShearAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					fig.redoShear();
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":重置切变");
					gbc.repaint();
				}
			};

			rightShear.addActionListener(rightShearAction);
			leftShear.addActionListener(leftShearAction);
			redoShear.addActionListener(redoShearAction);
		}

		popmenu.addSeparator();

		String name;
		if (fig.getID() == AbstractFiguare.TEXT) {
			name = "文字轮廓";
		} else {
			name = "线条";
		}
		JMenu strokeM = new JMenu(name);
		popmenu.add(strokeM);

		{
			JMenuItem colorMi = new JMenuItem("颜色");
			strokeM.add(colorMi);
			Action colorAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					Color ans = JColorChooser.showDialog(gbc, "选择线条颜色", fig
							.getStrokeColor());
					if (!ans.equals(fig.getStrokeColor())) {
						fig.setStrokeColor(ans);
						gbc
								.updateNetFiguare(
										NetMessage.MES_CHANGE_FIGUARE, fig);
						gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
								fig.serialId + ":修改线条颜色");
						gbc.repaint();
					}
				}
			};
			colorMi.addActionListener(colorAction);

			JMenuItem colorNoneMi = new JMenuItem("无色");
			strokeM.add(colorNoneMi);
			Action colorNoneAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					fig.setStrokeColor(null);
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":删除线条颜色");
					gbc.repaint();
				}
			};
			colorNoneMi.addActionListener(colorNoneAction);

			strokeM.addSeparator();

			JMenuItem incWidthMi = new JMenuItem("增加宽度(2.0f)");
			incWidthMi
					.setEnabled(fig.getLineWidth() + 2.0f <= AbstractFiguare.LINE_MAX_WIDTH);
			strokeM.add(incWidthMi);
			Action incWidthAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					double lw = fig.getLineWidth();
					lw += 2.0f;
					fig.setLineWidth(lw);
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":增加线条宽度");
					gbc.repaint();
				}
			};
			incWidthMi.addActionListener(incWidthAction);

			JMenuItem decWidthMi = new JMenuItem("减少宽度(2.0f)");
			decWidthMi.setEnabled(fig.getLineWidth() - 2.0f >= 0);
			strokeM.add(decWidthMi);
			Action decWidthAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					double lw = fig.getLineWidth();
					lw -= 2.0f;
					fig.setLineWidth(lw);
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":减少线条宽度");
					gbc.repaint();
				}
			};
			decWidthMi.addActionListener(decWidthAction);

			strokeM.addSeparator();

			JMenuItem incDisMi = new JMenuItem("增加间距(0.5f)");
			incDisMi
					.setEnabled(fig.getLineDis() + 0.5f <= AbstractFiguare.LINE_MAX_STYLE);
			strokeM.add(incDisMi);

			Action incDisAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					double ls = fig.getLineDis();
					ls += 0.5f;
					fig.setLineDis(ls);
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":增加虚线间距");
					gbc.repaint();
				}
			};
			incDisMi.addActionListener(incDisAction);

			JMenuItem decDisMi = new JMenuItem("减少间距(0.5f)");
			decDisMi.setEnabled(fig.getLineDis() - 0.5f >= 0);
			strokeM.add(decDisMi);

			Action decDisAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					double ls = fig.getLineDis();
					ls -= 0.5f;
					fig.setLineDis(ls);
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":减少虚线间距");
					gbc.repaint();
				}
			};
			decDisMi.addActionListener(decDisAction);
		}

		if (fig.getID() == AbstractFiguare.TEXT) {
			name = "文字内部";
		} else {
			name = "填充";
		}
		JMenu fillM = new JMenu(name);
		fillM.setEnabled(fig.getID() != AbstractFiguare.STRAIGHT_LINE);

		if (fig.getID() != AbstractFiguare.STRAIGHT_LINE)
			popmenu.add(fillM);

		{
			JMenuItem colorMi = new JMenuItem("颜色");
			fillM.add(colorMi);
			Action colorAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					Color ans = JColorChooser.showDialog(gbc, "选择填充颜色", fig
							.getFillColor());
					if (!ans.equals(fig.getFillColor())) {
						fig.setFillColor(ans);
						gbc
								.updateNetFiguare(
										NetMessage.MES_CHANGE_FIGUARE, fig);
						gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
								fig.serialId + ":修改填充颜色");
						gbc.repaint();
					}
				}
			};
			colorMi.addActionListener(colorAction);

			JMenuItem colorNoneMi = new JMenuItem("无色");
			fillM.add(colorNoneMi);
			Action colorNoneAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					fig.setFillColor(null);
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":删除填充颜色");
					gbc.repaint();
				}
			};
			colorNoneMi.addActionListener(colorNoneAction);
		}

		popmenu.addSeparator();

		JMenu layerM = new JMenu("层次");
		popmenu.add(layerM);

		{
			JMenuItem toUpMi = new JMenuItem("移至顶层");
			toUpMi
					.setEnabled(gbc.getFiguareLayer(fig) < gbc
							.getFiguareCount() - 1);
			layerM.add(toUpMi);
			Action toUpAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					gbc.toHighestLayer(fig, true);
				}
			};
			toUpMi.addActionListener(toUpAction);

			JMenuItem upMi = new JMenuItem("上移一层");
			upMi
					.setEnabled(gbc.getFiguareLayer(fig) < gbc
							.getFiguareCount() - 1);
			layerM.add(upMi);
			Action upAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					gbc.toHigherLayer(fig, true);
				}
			};
			upMi.addActionListener(upAction);

			JMenuItem downMi = new JMenuItem("下移一层");
			downMi.setEnabled(gbc.getFiguareLayer(fig) > 0);
			layerM.add(downMi);
			Action downAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					gbc.toLowerLayer(fig, true);
				}
			};
			downMi.addActionListener(downAction);

			JMenuItem toDownMi = new JMenuItem("移至低层");
			toDownMi.setEnabled(gbc.getFiguareLayer(fig) > 0);
			layerM.add(toDownMi);
			Action toDownAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					gbc.toLowestLayer(fig, true);
				}
			};
			toDownMi.addActionListener(toDownAction);
		}

		JMenuItem textMi = new JMenuItem("设置文字");
		if (fig.getID() == AbstractFiguare.TEXT) {
			popmenu.addSeparator();
			popmenu.add(textMi);

			Action textAction = new AbstractAction() {

				@Override
				public void actionPerformed(ActionEvent e) {
					gbc.setCursor(Cursor
							.getPredefinedCursor(Cursor.WAIT_CURSOR));
					((TextFiguare) fig).editText();
					gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
					gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
							fig.serialId + ":修改文字");
					gbc.repaint();
					gbc.updateCursor();
				}
			};
			textMi.addActionListener(textAction);
		}

		return popmenu;
	}

}

⌨️ 快捷键说明

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