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

📄 framedesign.java

📁 windows画图板.类似于windows自带的画图程序!
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.util.Random;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

import javax.swing.*;

public class FrameDesign {
	public static void main(String[] args) {
		frameObject = new JFrameTest();
		Dimension frameSize = frameObject.getSize();
		if (frameSize.height > frameObject.screenHeight) {
			frameSize.height = frameObject.screenHeight;
		}
		if (frameSize.width > frameObject.screenWidth) {
			frameSize.width = frameObject.screenWidth;
		}
		frameObject.setLocation(
				(frameObject.screenWidth - frameSize.width) / 2,
				(frameObject.screenHeight - frameSize.height) / 2);
		frameObject.setVisible(true);
		frameObject.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public static void run(Robot robot) {
		Point point = Panel.drawCanvas.getLocationOnScreen();
		int paneX = point.x;
		int paneY = point.y;
		if (Panel.judgmentDraw == true)
			image = robot.createScreenCapture(new Rectangle(paneX, paneY,
					Panel.drawCanvas.getWidth(), Panel.drawCanvas.getHeight()));
		else {
			if (DrawingBoard.picture.getWidth(null) > Panel.drawCanvas
					.getWidth()
					&& DrawingBoard.picture.getHeight(null) > Panel.drawCanvas
							.getHeight())
				image = robot.createScreenCapture(new Rectangle(paneX, paneY,
						Panel.drawCanvas.getWidth(), Panel.drawCanvas
								.getHeight()));
			else if (DrawingBoard.picture.getHeight(null) > Panel.drawCanvas
					.getHeight())
				image = robot.createScreenCapture(new Rectangle(paneX, paneY,
						DrawingBoard.picture.getWidth(null), Panel.drawCanvas
								.getHeight()));
			else if (DrawingBoard.picture.getWidth(null) > Panel.drawCanvas
					.getWidth())
				image = robot.createScreenCapture(new Rectangle(paneX, paneY,
						Panel.drawCanvas.getWidth(), DrawingBoard.picture
								.getHeight(null)));
			else
				image = robot.createScreenCapture(new Rectangle(paneX, paneY,
						DrawingBoard.picture.getWidth(null),
						DrawingBoard.picture.getHeight(null)));
		}
	}

	protected static BufferedImage image;
	protected static JFrameTest frameObject;
}

@SuppressWarnings("serial")
class JFrameTest extends JFrame {
	// 得到屏幕宽和高

	Toolkit kit = Toolkit.getDefaultToolkit();
	Dimension screenSize = kit.getScreenSize();
	int screenWidth = screenSize.width;
	int screenHeight = screenSize.height;
	JMenuItem chexiaoMenu;
	JMenuItem unDoMenu;
	JMenuItem cutMenu;
	JMenuItem copyMenu;
	JMenuItem pastMenu;
	JMenuItem clearSelectMenu;
	JMenuItem copyToMenu;

	public JFrameTest() {

		setSize(screenWidth / 2, screenHeight / 2);

		// 设置框架标题和ICON

		Image img = kit
				.getImage("E:\\java练习\\java练习\\SmallPhoto\\src\\img\\ICON.jpg");
		setIconImage(img);
		setTitle("未命名-SmallPhoto");

		/** ****************菜单设计***************************** */

		JMenuBar menuDesign = new JMenuBar();

		// 文件菜单设计

		JMenu fileMenu = new JMenu("文件(F)");
		fileMenu.setMnemonic('F');
		JMenuItem newMenu = new JMenuItem("新建(N)");
		newMenu.addActionListener(new MenuEventClass());
		newMenu.setMnemonic('N');
		newMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
				InputEvent.CTRL_MASK));
		JMenuItem openMenu = new JMenuItem("打开(O)...");
		openMenu.setMnemonic('O');
		openMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
				InputEvent.CTRL_MASK));
		JMenuItem saveMenu = new JMenuItem("保存(S)");
		saveMenu.setMnemonic('S');
		saveMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
				InputEvent.CTRL_MASK));
		JMenuItem saveAsMenu = new JMenuItem("另存为(A)...");
		saveAsMenu.setMnemonic('A');
		JMenuItem printViewMenu = new JMenuItem("打印预览(V)");
		printViewMenu.setMnemonic('V');
		JMenuItem setPageMenu = new JMenuItem("页面设置(U)...");
		printViewMenu.setMnemonic('U');
		JMenuItem printMenu = new JMenuItem("打印(P)...");
		printMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,
				InputEvent.CTRL_MASK));
		printMenu.setMnemonic('P');
		JMenuItem sendMenu = new JMenuItem("发送(E)...");
		sendMenu.setMnemonic('E');
		JMenuItem exitMenu = new JMenuItem("退出(X)");
		exitMenu.setMnemonic('X');
		exitMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4,
				InputEvent.ALT_MASK));
		fileMenu.add(newMenu);
		fileMenu.add(openMenu);
		fileMenu.add(saveMenu);
		fileMenu.add(saveAsMenu);
		fileMenu.addSeparator();
		fileMenu.add(printViewMenu);
		fileMenu.add(setPageMenu);
		fileMenu.add(printMenu);
		fileMenu.addSeparator();
		fileMenu.add(sendMenu);
		fileMenu.addSeparator();
		fileMenu.addSeparator();
		fileMenu.add(exitMenu);

		// 编辑菜单设计

		JMenu editMenu = new JMenu("编辑(E)");
		editMenu.setMnemonic('E');
		chexiaoMenu = new JMenuItem("撤销(Z)");
		chexiaoMenu.setMnemonic('Z');
		// chexiaoMenu.setEnabled(false);
		chexiaoMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,
				InputEvent.CTRL_MASK));
		unDoMenu = new JMenuItem("重做(Y)");
		unDoMenu.setMnemonic('Y');
		// unDoMenu.setEnabled(false);
		unDoMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,
				InputEvent.CTRL_MASK));
		cutMenu = new JMenuItem("剪切(T)");
		cutMenu.setMnemonic('T');
		// cutMenu.setEnabled(false);
		cutMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
				InputEvent.CTRL_MASK));
		copyMenu = new JMenuItem("复制(C)");
		copyMenu.setMnemonic('C');
		// copyMenu.setEnabled(false);
		copyMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
				InputEvent.CTRL_MASK));
		pastMenu = new JMenuItem("粘贴(P)");
		pastMenu.setMnemonic('P');
		// pastMenu.setEnabled(false);
		pastMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
				InputEvent.CTRL_MASK));
		JMenuItem clearSelectMenu = new JMenuItem("清除选定内容(L)");
		clearSelectMenu.setMnemonic('L');
		// clearSelectMenu.setEnabled(false);
		JMenuItem selectAllMenu = new JMenuItem("全选(A)");
		selectAllMenu.setMnemonic('A');
		selectAllMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
				InputEvent.CTRL_MASK));
		copyToMenu = new JMenuItem("复制到(O)...");
		copyToMenu.setMnemonic('O');
		// copyToMenu.setEnabled(false);
		JMenuItem pasteSourceMenu = new JMenuItem("粘贴来源(F)...");
		pasteSourceMenu.setMnemonic('F');
		editMenu.add(chexiaoMenu);
		editMenu.add(unDoMenu);
		editMenu.addSeparator();
		editMenu.add(cutMenu);
		editMenu.add(copyMenu);
		editMenu.add(pastMenu);
		editMenu.add(clearSelectMenu);
		editMenu.add(selectAllMenu);
		editMenu.addSeparator();
		editMenu.add(copyToMenu);
		editMenu.add(pasteSourceMenu);
		MenuEventClass cKMenuEvent = new MenuEventClass();
		chexiaoMenu.addActionListener(cKMenuEvent);
		unDoMenu.addActionListener(cKMenuEvent);
		cutMenu.addActionListener(cKMenuEvent);
		copyMenu.addActionListener(cKMenuEvent);
		pastMenu.addActionListener(cKMenuEvent);
		clearSelectMenu.addActionListener(cKMenuEvent);
		selectAllMenu.addActionListener(cKMenuEvent);
		copyToMenu.addActionListener(cKMenuEvent);
		pasteSourceMenu.addActionListener(cKMenuEvent);
		// 查看菜单

		JMenu lookMenu = new JMenu("查看(V)");
		lookMenu.setMnemonic('V');
		final JCheckBoxMenuItem mainToolBar = new JCheckBoxMenuItem("主工具栏(M)");
		mainToolBar.setMnemonic('T');
		mainToolBar.setState(true);
		mainToolBar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent j) {
				if (mainToolBar.getState()) {
					Panel.mainToolBar.setVisible(true);
				} else {
					Panel.mainToolBar.setVisible(false);
				}
			}
		});
		mainToolBar.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,
				InputEvent.CTRL_MASK));
		final JCheckBoxMenuItem ToolBar = new JCheckBoxMenuItem("绘图工具箱(T)");
		ToolBar.setMnemonic('T');
		ToolBar.setState(true);
		ToolBar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent j) {
				if (ToolBar.getState()) {
					Panel.drawTool.setVisible(true);
				} else {
					Panel.drawTool.setVisible(false);
				}
			}
		});
		ToolBar.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,
				InputEvent.CTRL_MASK));
		final JCheckBoxMenuItem colorToolBar = new JCheckBoxMenuItem("颜料箱(C)");
		colorToolBar.setMnemonic('C');
		colorToolBar.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,
				InputEvent.CTRL_MASK));
		colorToolBar.setState(true);
		colorToolBar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent j) {
				if (colorToolBar.isSelected()) {
					Panel.color.setVisible(true);
					Panel.colorAndState.setVisible(true);
				} else {
					Panel.color.setVisible(false);
					if (Panel.color.isVisible() || Panel.state.isVisible()) {
						Panel.colorAndState.setVisible(true);
					} else {
						Panel.colorAndState.setVisible(false);

					}
				}
			}
		});
		final JCheckBoxMenuItem stateToolBar = new JCheckBoxMenuItem("状态栏(S)");
		stateToolBar.setMnemonic('S');
		stateToolBar.setState(true);
		stateToolBar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent j) {
				if (stateToolBar.isSelected()) {
					Panel.state.setVisible(true);
					Panel.colorAndState.setVisible(true);
				} else {
					Panel.state.setVisible(false);
					if (Panel.color.isVisible() || Panel.state.isVisible()) {
						Panel.colorAndState.setVisible(true);
					} else {
						Panel.colorAndState.setVisible(false);

					}
				}
			}
		});
		fontToolMenu = new JMenuItem("文字工具栏(E)");
		fontToolMenu.setMnemonic('E');
		fontToolMenu.setEnabled(false);
		JMenu xuoFangMenu = new JMenu("缩放(Z)");
		xuoFangMenu.setMnemonic('Z');
		final JMenuItem normalMenu = new JMenuItem("常规尺寸(N)");
		normalMenu.setMnemonic('N');
		normalMenu.setEnabled(false);
		normalMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,
				InputEvent.CTRL_MASK));
		final JMenuItem bigMenu = new JMenuItem("大尺寸(L)");
		bigMenu.setMnemonic('L');
		bigMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,
				InputEvent.CTRL_MASK));
		JMenuItem defineMenu = new JMenuItem("自定义(U)...");
		defineMenu.setMnemonic('U');
		xuoFangMenu.add(normalMenu);
		xuoFangMenu.add(bigMenu);
		xuoFangMenu.add(defineMenu);
		final JMenuItem showMenu = new JMenuItem("捕获屏幕(H)...");
		showMenu.addActionListener(new lookBitmap());
		showMenu.setMnemonic('H');
		lookAndFeel = new JMenu("观感");
		UIManager.LookAndFeelInfo[] infos = UIManager
				.getInstalledLookAndFeels();
		for (UIManager.LookAndFeelInfo info : infos) {
			makeMenuItem(info.getName(), info.getClassName());
		}
		lookMenu.add(mainToolBar);
		lookMenu.add(ToolBar);
		lookMenu.add(colorToolBar);
		lookMenu.add(stateToolBar);
		lookMenu.add(fontToolMenu);
		lookMenu.addSeparator();
		lookMenu.add(xuoFangMenu);
		lookMenu.add(showMenu);
		lookMenu.addSeparator();
		lookMenu.add(lookAndFeel);
		normalMenu.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				normalMenu.setEnabled(false);
				bigMenu.setEnabled(true);
				MenuEventClass.srcFlag = false;
				MenuEventClass.scale(DrawingBoard.picture, 2,
						MenuEventClass.srcFlag);
			}
		});
		bigMenu.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				bigMenu.setEnabled(false);
				normalMenu.setEnabled(true);
				MenuEventClass.srcFlag = true;
				MenuEventClass.scale(DrawingBoard.picture, 2,
						MenuEventClass.srcFlag);
			}
		});
		// 图像菜单

		JMenu imageMenu = new JMenu("图像(I)");
		imageMenu.setMnemonic('I');
		JMenuItem xuanZuanMenu = new JMenuItem("旋转/翻转(F)...");
		xuanZuanMenu.setMnemonic('F');
		xuanZuanMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,
				InputEvent.CTRL_MASK));
		JMenuItem laShenMenu = new JMenuItem("拉伸/扭曲(S)...");
		laShenMenu.setMnemonic('S');
		laShenMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,
				InputEvent.CTRL_MASK));
		JMenuItem objectMenu = new JMenuItem("反色(O)");
		objectMenu.setMnemonic('O');
		objectMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,
				InputEvent.SHIFT_MASK));
		JMenuItem mistyMenu = new JMenuItem("模糊(M)");
		mistyMenu.setMnemonic('M');
		mistyMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,
				InputEvent.SHIFT_MASK));
		JMenuItem lightMenu = new JMenuItem("加亮(L)");
		lightMenu.setMnemonic('L');
		lightMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,
				InputEvent.SHIFT_MASK));
		JMenuItem ruiMenu = new JMenuItem("锐化(R)");
		ruiMenu.setMnemonic('R');
		ruiMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
				InputEvent.SHIFT_MASK));
		JMenuItem edgeMenu = new JMenuItem("边缘(E)");
		edgeMenu.setMnemonic('E');
		edgeMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
				InputEvent.SHIFT_MASK));
		JMenuItem shuXingMenu = new JMenuItem("属性(A)...");
		shuXingMenu.setMnemonic('A');
		shuXingMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,
				InputEvent.CTRL_MASK));
		JMenuItem clearImageMenu = new JMenuItem("清除图像(C)");
		clearImageMenu.setMnemonic('C');
		clearImageMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
				InputEvent.SHIFT_MASK));
		JCheckBoxMenuItem chuLiMenu = new JCheckBoxMenuItem("不透明处理(D)");
		chuLiMenu.setMnemonic('D');
		chuLiMenu.setState(true);
		imageMenu.add(xuanZuanMenu);
		imageMenu.add(laShenMenu);
		imageMenu.addSeparator();
		imageMenu.add(lightMenu);
		imageMenu.add(ruiMenu);
		imageMenu.add(edgeMenu);
		imageMenu.add(mistyMenu);
		imageMenu.add(objectMenu);
		imageMenu.addSeparator();
		imageMenu.add(shuXingMenu);
		imageMenu.add(clearImageMenu);
		imageMenu.addSeparator();
		imageMenu.add(chuLiMenu);
		lightMenu.addActionListener(new ImageProcess());
		ruiMenu.addActionListener(new ImageProcess());
		edgeMenu.addActionListener(new ImageProcess());
		mistyMenu.addActionListener(new ImageProcess());
		objectMenu.addActionListener(new ImageProcess());
		// 颜色菜单

		JMenu colorMenu = new JMenu("颜色(C)");
		colorMenu.setMnemonic('C');
		JMenuItem editColorMenu = new JMenuItem("编辑颜色(E)...");
		editColorMenu.setMnemonic('E');
		colorMenu.add(editColorMenu);

		// 帮助菜单

		JMenu helpMenu = new JMenu("帮助(H)");
		helpMenu.setMnemonic('H');
		JMenuItem mainSubjectMenu = new JMenuItem("帮助主题(H)");

⌨️ 快捷键说明

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