📄 picturedrawer.java
字号:
/* * 图形编辑器演示程序 */package PictureDrawer;import javax.swing.JRadioButton;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JInternalFrame;import javax.swing.ButtonGroup;import javax.swing.JDesktopPane;import javax.swing.JMenuItem;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JSeparator;import javax.swing.JToolBar;import javax.swing.JFileChooser;import javax.swing.KeyStroke;import java.net.URLClassLoader;import java.net.URL; import java.util.Vector;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;import java.awt.event.InputEvent;/** * 这个类是本演示程序的入口,它将创建和演示主应用程序框架 */public class PictureDrawer extends JFrame implements ActionListener{ //常量定义 /** * 当前没有任何的操作 */ public static final int TOOL_MOUSE = 0; /** * 当前操作为放大器操作 */ public static final int TOOL_MAGNIFIER = 1; /** * 当前操作为旋转操作 */ public static final int TOOL_ROTATE = 2; /** * 当前操作为反色操作 */ public static final int TOOL_INVERT = 3; /** * 当前操作为其他反色处理 */ public static final int TOOL_OTHER_INVERT = 4; /** * 当前操作为黑色最小阈值 */ public static final int TOOL_BLACK_THRESHOLD = 5; /** * 当前操作为白色最大阈值 */ public static final int TOOL_WHITE_THRESHOLD = 6; /** * 当前操作亮度调整 */ public static final int TOOL_RESCALE = 7; /** * 当前操作图像缩放操作 */ public static final int TOOL_ZOOM = 8; /** * 当前操作3x3边缘化操作 */ public static final int TOOL_EDGE33 = 9; /** * 当前操作5x5边缘化操作 */ public static final int TOOL_EDGE55 = 10; /** * 当前操作锐化操作 */ public static final int TOOL_SHARPEN = 11; /** * 当前操作钝化操作 */ public static final int TOOL_BLUR = 12; /** * 当前操作:对图像进行垂直镜像操作 */ public static final int TOOL_VERTICAL_MIRROR = 13; /** * 当前操作:对图像进行水平镜像操作 */ public static final int TOOL_HORIZONTAL_MIRROR = 14; /** * 将当前图形进行恢复 */ public static final int TOOL_RETRIEVE = 15; /** * 单击该按钮后,取消其他工具的操作 */ private JRadioButton jrbtnHand; /** * 单击该按钮后,显示放大镜,放大图像 */ private JRadioButton jrbtnMagnifier; /** * 单击该按钮后,显示旋转图像 */ private JRadioButton jrbtnRotate; /** * 单击该按钮后,显示反色当前图像 */ private JRadioButton jrbtnInvert; /** * 单击该按钮后,显示其他反色图像 */ private JRadioButton jrbtnOtherInvert; /** * 单击该按钮后,将图像变为黑色最小阈值操作 */ private JRadioButton jrbtnBlackThreshold; /** * 单击该按钮后,将图像变为白色最大阈值操作 */ private JRadioButton jrbtnWhiteThreshold; /** * 单击该按钮后,将图像变亮度调整操作 */ private JRadioButton jrbtnRescale; /** * 单击该按钮后,将图像变为缩放操作 */ private JRadioButton jrbtnZoom; /** * 单击该按钮后,将图像变3x3边缘操作 */ private JRadioButton jrbtnEdge33; /** * 单击该按钮后,将图像变为5x5边缘操作 */ private JRadioButton jrbtnEdge55; /** * 单击该按钮后,将图像变锐化操作 */ private JRadioButton jrbtnSharpen; /** * 单击该按钮后,将图像变为钝化操作 */ private JRadioButton jrbtnBlur; /** * 单击该按钮后,将图像变垂直镜像操作 */ private JRadioButton jrbtnVerticalMirror; /** * 单击该按钮后,将图像变为水平镜像操作 */ private JRadioButton jrbtnHorizontalMirror; /** * 单击该按钮后,将图像恢复为原来的图像 */ private JRadioButton jrbtnRetrieve; /** * 保存工具栏单选按钮 */ private Vector toolbuttons = new Vector(); private JDesktopPane desktop; private JToolBar jToolBar1; private JMenuBar mainMenuBar; private JMenu fileMenu; private JMenuItem exitMenuItem; private JSeparator jSeparator1; private JMenuItem openMenuItem; private JMenuItem saveMenuItem; private JMenuItem saveAsMenuItem; private JMenu modifyMenu; private JMenuItem magnifierMenuItem; private JMenuItem rotateMenuItem; private JMenuItem invertMenuItem; private JMenuItem otherInvertMenuItem; private JMenuItem blackThresholdMenuItem; private JMenuItem whiteThresholdMenuItem; private JMenuItem rescaleMenuItem; private JMenuItem zoomMenuItem; private JMenuItem edge33MenuItem; private JMenuItem edge55MenuItem; private JMenuItem sharpenMenuItem; private JMenuItem blurMenuItem; private JMenuItem vMirrorMenuItem; private JMenuItem hMirrorMenuItem; private JMenuItem retrieveMenuItem; /** * 标识当前的操作类型 */ private int current_tool = TOOL_MOUSE; /** * 构造函数 */ public PictureDrawer() { initComponents(); pack(); //最大化窗口 setExtendedState(MAXIMIZED_BOTH); } /** * 初始化组件,该函数被构造函数调用 */ private void initComponents() { desktop = new JDesktopPane(); mainMenuBar = new JMenuBar(); fileMenu = new JMenu(); openMenuItem = new JMenuItem(); jSeparator1 = new JSeparator(); exitMenuItem = new JMenuItem(); saveMenuItem = new JMenuItem(); saveAsMenuItem = new JMenuItem(); modifyMenu = new JMenu(); magnifierMenuItem = new JMenuItem(); rotateMenuItem = new JMenuItem(); invertMenuItem = new JMenuItem(); otherInvertMenuItem = new JMenuItem(); blackThresholdMenuItem = new JMenuItem(); whiteThresholdMenuItem = new JMenuItem(); rescaleMenuItem = new JMenuItem(); zoomMenuItem = new JMenuItem(); edge33MenuItem = new JMenuItem(); edge55MenuItem = new JMenuItem(); sharpenMenuItem = new JMenuItem(); blurMenuItem = new JMenuItem(); vMirrorMenuItem = new JMenuItem(); hMirrorMenuItem = new JMenuItem(); retrieveMenuItem = new JMenuItem(); setTitle(java.util.ResourceBundle.getBundle("PictureDrawer/default"). getString("Picture_Drawer")); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); getAccessibleContext().setAccessibleName( java.util.ResourceBundle.getBundle("PictureDrawer/default"). getString("Image_Viewer_Frame")); getContentPane().add(desktop, java.awt.BorderLayout.CENTER); desktop.getAccessibleContext().setAccessibleName( java.util.ResourceBundle.getBundle("PictureDrawer/default"). getString("Image_Desktop")); desktop.getAccessibleContext().setAccessibleDescription( java.util.ResourceBundle.getBundle("PictureDrawer/default"). getString("Image_desktop")); //创建File菜单 fileMenu.setMnemonic('f'); fileMenu.setText( java.util.ResourceBundle.getBundle("PictureDrawer/default"). getString("File")); fileMenu.getAccessibleContext().setAccessibleName( fileMenu.getText()); fileMenu.getAccessibleContext().setAccessibleDescription( fileMenu.getText()); //Open菜单 openMenuItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK)); openMenuItem.setMnemonic('o'); openMenuItem.setText(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -