?? imagemenu.java
字號:
package onlyfun.caterpillar.app.EasyJShop.menu;
import onlyfun.caterpillar.app.EasyJShop.main.AbstractChild;
import onlyfun.caterpillar.app.EasyJShop.main.CanvasComponent;
import onlyfun.caterpillar.app.EasyJShop.main.ColorDemoBox;
import onlyfun.caterpillar.app.EasyJShop.main.IBatcher;
import java.awt.AWTException;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.image.BufferedImage;
import java.beans.PropertyVetoException;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JColorChooser;
import javax.swing.JFileChooser;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;
import onlyfun.caterpillar.image.ScreenCaptureHelper;
import java.awt.Color;
import javax.swing.JPanel;
import javax.swing.JLabel;
public class ImageMenu extends AbstractChild {
private ScreenCaptureHelper captureHelper;
private JMenu imageMenu;
private JMenuItem captureMenuItem, newImageMenuItem;
private JMenuItem openMenuItem, saveMenuItem, saveAsMenuItem, saveAllMenuItem;
private JMenuItem exitMenuItem;
private JSlider delaySlider;
private JSpinner widthSpinner, heightSpinner;
private ColorDemoBox backgroundColorBox;
private JPanel newImagePanel;
private JFileChooser openFileChooser, saveFileChooser;
private WindowListener windowListener;
private InternalFrameListener internalFrameListener;
public ImageMenu() {
initResource();
setupUIComponent();
setupEventListener();
}
private void initResource() {
try {
captureHelper = new ScreenCaptureHelper();
}
catch(AWTException e) {
infoMessageBox(e.getMessage());
}
}
private void setupUIComponent() {
delaySlider = new JSlider(SwingConstants.HORIZONTAL, 0, 20, 0);
delaySlider.setPaintTrack(true);
delaySlider.setPaintLabels(true);
delaySlider.setMajorTickSpacing(5);
delaySlider.setMajorTickSpacing(1);
delaySlider.setPaintTicks(true);
openFileChooser = new JFileChooser();
openFileChooser.setMultiSelectionEnabled(true);
openFileChooser.addChoosableFileFilter(new OpenableFileFilter());
saveFileChooser = new JFileChooser();
saveFileChooser.addChoosableFileFilter(new SavableFileFilter());
imageMenu = new JMenu("Image");
captureMenuItem = new JMenuItem("Get screen");
newImageMenuItem = new JMenuItem("New");
openMenuItem = new JMenuItem("Open..");
saveMenuItem = new JMenuItem("Save");
saveAsMenuItem = new JMenuItem("Save as..");
saveAllMenuItem = new JMenuItem("Save all");
exitMenuItem = new JMenuItem("Exit");
imageMenu.add(captureMenuItem);
imageMenu.add(newImageMenuItem);
imageMenu.addSeparator();
imageMenu.add(openMenuItem);
imageMenu.add(saveMenuItem);
imageMenu.add(saveAsMenuItem);
imageMenu.add(saveAllMenuItem);
imageMenu.addSeparator();
imageMenu.add(exitMenuItem);
saveMenuItem.setEnabled(false);
saveAsMenuItem.setEnabled(false);
saveAllMenuItem.setEnabled(false);
widthSpinner = new JSpinner();
widthSpinner.setValue(new Integer(640));
heightSpinner = new JSpinner();
heightSpinner.setValue(new Integer(480));
backgroundColorBox = new ColorDemoBox(Color.white);
newImagePanel = new JPanel();
newImagePanel.add(new JLabel("Width"));
newImagePanel.add(widthSpinner);
newImagePanel.add(new JLabel("Height"));
newImagePanel.add(heightSpinner);
newImagePanel.add(new JLabel(" Background color"));
newImagePanel.add(backgroundColorBox);
}
private void setupEventListener() {
captureMenuItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_MASK));
newImageMenuItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
openMenuItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
saveMenuItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
exitMenuItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_MASK));
captureMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
captureScreen();
}
}
);
newImageMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
newImageFile();
}
}
);
openMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
openImageFile();
}
}
);
saveMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveImageFile();
}
}
);
saveAsMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveImageFileAs();
}
}
);
saveAllMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveAllImageFile();
}
}
);
exitMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
checkUnsavedImages();
}
}
);
widthSpinner.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
if(((Integer) widthSpinner.getValue()).intValue() <= 0) {
widthSpinner.setValue(new Integer(1));
}
}
});
heightSpinner.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
if(((Integer) heightSpinner.getValue()).intValue() <= 0) {
heightSpinner.setValue(new Integer(1));
}
}
});
backgroundColorBox.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
Color color = JColorChooser.showDialog(null, "Color information", backgroundColorBox.getColor());
if(color != null) {
backgroundColorBox.setColor(color);
backgroundColorBox.repaint();
}
}
});
windowListener = new WindowListener() {
public void windowClosing(WindowEvent e) {
checkUnsavedImages();
}
public void windowOpened(WindowEvent e) {
}
public void windowClosed(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowActivated(WindowEvent e) {
}
public void windowDeactivated(WindowEvent e) {
}
};
internalFrameListener = new InternalFrameListener() {
public void internalFrameOpened(InternalFrameEvent e) {
saveMenuItem.setEnabled(true);
saveAsMenuItem.setEnabled(true);
saveAllMenuItem.setEnabled(true);
}
public void internalFrameClosing(InternalFrameEvent e) {
JInternalFrame internalFrame = (JInternalFrame) e.getSource();//getDesktopPane().getSelectedFrame();
try {
internalFrame.setIcon(false);
internalFrame.setSelected(true);
}
catch(PropertyVetoException ex) {
infoMessageBox(ex.getMessage());
}
checkUnsavedImage(internalFrame);
}
public void internalFrameClosed(InternalFrameEvent e) {
checkImageMenuItem();
}
public void internalFrameIconified(InternalFrameEvent e) {
checkImageMenuItem();
}
public void internalFrameDeiconified(InternalFrameEvent e) {
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -