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

📄 mainframe.java

📁 图象编辑器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package imageapp;/** * Write a description of class MainFrame here. *  * @author (Shi Peng)  * @version (0.7 version 07/07/07) */ import java.awt.*;import java.awt.event.*;import java.awt.image.*;import javax.swing.*;import java.io.*;import javax.imageio.*;import java.util.*;public class MainFrame extends JFrame {	JMenuBar mb;    JMenu fileMenu;    JMenuItem newItem;    JMenuItem openItem;    JMenuItem saveItem;    JMenuItem closeItem;    JMenuItem exitItem;        JMenu editMenu;    JMenuItem undoItem;    JMenuItem redoItem;        JMenu geoMenu;    JMenuItem horMirrorItem;    JMenuItem verMirrorItem;    JMenuItem scaleItem;    JMenuItem rotateItem;        JMenu colorMenu;    JMenuItem grayScaleItem;    JMenuItem changeYHSItem;    JMenuItem histgramItem;    JMenuItem contrastItem;    JMenuItem histPlaneItem;        JMenu convolveMenu;    JMenuItem laplacianItem;    JMenuItem sharpItem;    JMenuItem blurItem;    JMenuItem filtItem;        JMenu frequentMenu;    JMenuItem fftItem;    JMenuItem decomposeItem;    JMenuItem markItem;        JToolBar tb;    JButton newBtn;    JButton openBtn;    JButton saveBtn;            ImagePanel imagePanel;    JScrollPane scrollPane;    ImageIcon imageIcon;    BufferedImage image;        JFileChooser chooser;    ImagePreviewer imagePreviewer;    ImageFileView fileView;        ImageFileFilter bmpFilter;    ImageFileFilter jpgFilter;	ImageFileFilter gifFilter;	ImageFileFilter bothFilter;		LinkedList undoList;	LinkedList redoList;	private final static int MAX_UNDO_COUNT = 10;	private final static int MAX_REDO_COUNT = 10;        public MainFrame() {        addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                exit(e);            }        });                undoList = new LinkedList();        redoList = new LinkedList();        //imageIcon = new ImageIcon("c:/01.jpg");        //try { image = ImageIO.read(new File("c:/01.jpg")); }        //catch(Exception e) {};        //image = GeoTransform.horMirrorImage(image);        //image = reverse(image);        initComponents();    }        private void initComponents() {    	Container contentPane = getContentPane();    	    	imagePanel = new ImagePanel(image);        scrollPane = new JScrollPane(imagePanel);        contentPane.add(scrollPane, BorderLayout.CENTER);                chooser = new JFileChooser();        imagePreviewer = new ImagePreviewer(chooser);        fileView = new ImageFileView();	    bmpFilter = new ImageFileFilter("bmp", "BMP Image Files");	    jpgFilter = new ImageFileFilter("jpg", "JPEG Compressed Image Files");		gifFilter = new ImageFileFilter("gif", "GIF Image Files");		bothFilter = new ImageFileFilter(new String[] {"bmp", "jpg", "gif"}, "BMP, JPEG and GIF Image Files");	    chooser.addChoosableFileFilter(gifFilter);	    chooser.addChoosableFileFilter(bmpFilter);        chooser.addChoosableFileFilter(jpgFilter);        chooser.addChoosableFileFilter(bothFilter);        chooser.setAccessory(imagePreviewer);        chooser.setFileView(fileView);        chooser.setAcceptAllFileFilterUsed(false);                        	Icon fileIcon = new ImageIcon("images/file.gif");		Icon newIcon = new ImageIcon("images/new.gif");		Icon openIcon = new ImageIcon("images/open.gif");		Icon saveIcon = new ImageIcon("images/save.gif");		Icon undoIcon = new ImageIcon("images/undo.gif");		Icon redoIcon = new ImageIcon("images/redo.gif");//************************Menu bar***************************//		mb = new JMenuBar();		setJMenuBar(mb);//************************File Menu**************************//		fileMenu = new JMenu("File(F)");		fileMenu.setIcon(fileIcon);		fileMenu.setMnemonic('F');		mb.add(fileMenu);				newItem = new JMenuItem("New(N)", newIcon);		newItem.setMnemonic('N');		newItem.setAccelerator(KeyStroke.getKeyStroke('N', Event.CTRL_MASK));				openItem = new JMenuItem("Open(O)", openIcon);		openItem.setMnemonic('O');		openItem.setAccelerator(KeyStroke.getKeyStroke('O', Event.CTRL_MASK));		openItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				openFile(e);			}		});				saveItem = new JMenuItem("Save(S)", saveIcon);		saveItem.setMnemonic('S');		saveItem.setAccelerator(KeyStroke.getKeyStroke('S', Event.CTRL_MASK));				closeItem = new JMenuItem("Close(C)");		closeItem.setMnemonic('C');				exitItem = new JMenuItem("Exit(X)");		exitItem.setMnemonic('X');				fileMenu.add(newItem);		fileMenu.add(openItem);		fileMenu.add(saveItem);		fileMenu.add(closeItem);		fileMenu.addSeparator();		fileMenu.add(exitItem);//************************Edit Menu***************************//		editMenu = new JMenu("Edit(E)");		editMenu.setMnemonic('E');		mb.add(editMenu);				undoItem = new JMenuItem("Undo(U)", undoIcon);		undoItem.setMnemonic('U');		undoItem.setAccelerator(KeyStroke.getKeyStroke('Z', Event.CTRL_MASK));		undoItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				undo(e);			}		});				redoItem = new JMenuItem("Redo(R)", redoIcon);		redoItem.setMnemonic('R');		redoItem.setAccelerator(KeyStroke.getKeyStroke('Y', Event.CTRL_MASK));		redoItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				redo(e);			}		});				editMenu.add(undoItem);		editMenu.add(redoItem);//************************Geo Menu***************************//				geoMenu = new JMenu("Geometry transform(G)");		geoMenu.setMnemonic('G');		mb.add(geoMenu);				horMirrorItem = new JMenuItem("Horizontal mirror(H)");		horMirrorItem.setMnemonic('H');		horMirrorItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				horMirror(e);			}		});				verMirrorItem = new JMenuItem("Vertical mirror(V)");		verMirrorItem.setMnemonic('V');		verMirrorItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				verMirror(e);			}		});				scaleItem = new JMenuItem("Scaling(S)");		scaleItem.setMnemonic('S');		scaleItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				scale(e);			}		});				rotateItem = new JMenuItem("Rotate(R)");		rotateItem.setMnemonic('R');		rotateItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				rotate(e);			}		});				geoMenu.add(horMirrorItem);		geoMenu.add(verMirrorItem);		geoMenu.add(scaleItem);		geoMenu.add(rotateItem);//************************Color Menu***************************//			colorMenu = new JMenu("Color change(C)");		colorMenu.setMnemonic('C');		mb.add(colorMenu);				grayScaleItem = new JMenuItem("Gray(G)");		grayScaleItem.setMnemonic('S');		grayScaleItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				grayScale(e);			}		});				changeYHSItem = new JMenuItem("Color adjust(M)");		changeYHSItem.setMnemonic('M');		changeYHSItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				changeYHS(e);			}		});				histgramItem = new JMenuItem("Gray level table(H)");		histgramItem.setMnemonic('H');		histgramItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				histgram(e);			}		});				contrastItem = new JMenuItem("Contrast(C)");		contrastItem.setMnemonic('C');		contrastItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				contrast(e);			}		});				histPlaneItem = new JMenuItem("Gray proportion(P)");		histPlaneItem.setMnemonic('P');		histPlaneItem.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				histPlane(e);			}		});				colorMenu.add(grayScaleItem);		colorMenu.add(changeYHSItem);		colorMenu.add(histgramItem);		colorMenu.add(contrastItem);		colorMenu.add(histPlaneItem);//************************Convolve Menu***************************//					convolveMenu = new JMenu("Edge detect(O)");		convolveMenu.setMnemonic('O');		mb.add(convolveMenu);				laplacianItem = new JMenuItem("拉普拉斯边缘提取(L)");

⌨️ 快捷键说明

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