📄 abstractchild.java
字号:
package onlyfun.caterpillar.app.EasyJShop.main;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowListener;
import java.beans.PropertyVetoException;
import java.util.Map;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JOptionPane;
import javax.swing.JToolBar;
import javax.swing.event.InternalFrameListener;
import onlyfun.caterpillar.app.EasyJShop.EasyJShop;
import onlyfun.caterpillar.app.EasyJShop.menu.EditMenu;
import onlyfun.caterpillar.image.ImageMementoManager;
public abstract class AbstractChild {
protected EasyJShop parent;
protected ImageIcon smallLogo = new ImageIcon(EditMenu.class.getResource("images/smallLogo.gif"));
public JMenu getMenu() {
return null;
}
public JToolBar getToolBar() {
return null;
}
public WindowListener getWindowListener() {
return null;
}
public InternalFrameListener getInternalFrameListener() {
return null;
}
public MouseListener getCanvasMouseListener() {
return null;
}
public MouseMotionListener getCanvasMouseMotionListener() {
return null;
}
public void setParent(EasyJShop parent) {
this.parent = parent;
}
protected void batch(IBatcher batcher) {
JInternalFrame[] internalFrames = getDesktopPane().getAllFrames();
for(int i = 0; i < internalFrames.length; i++) {
try {
internalFrames[i].setIcon(true);
internalFrames[i].pack();
batcher.execute();
}
catch(PropertyVetoException e) {
infoMessageBox(e.getMessage());
}
}
}
protected void infoMessageBox(String message) {
JOptionPane.showMessageDialog(null, message,
"Info.", JOptionPane.INFORMATION_MESSAGE);
}
protected void fitAppSize(Image image) {
CanvasComponent canvas = getCanvasOfSelectedFrame();
double scale = canvas.getScale();
canvas.setSize((int) (image.getWidth(canvas) * scale), (int) (image.getHeight(canvas) * scale));
JInternalFrame internalFrame = getDesktopPane().getSelectedFrame();
internalFrame.pack();
// if the frame is larger than app size, resize it to fit the app size.
if(internalFrame.getWidth() >= Toolkit.getDefaultToolkit().getScreenSize().getWidth()-20 &&
internalFrame.getHeight() >= Toolkit.getDefaultToolkit().getScreenSize().getHeight()-120) {
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
getDesktopPane().getSelectedFrame().setSize((int) size.getWidth() - 20, (int) size.getHeight() - 120);
}
else if(internalFrame.getWidth() >= Toolkit.getDefaultToolkit().getScreenSize().getWidth() - 20) {
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
getDesktopPane().getSelectedFrame().setSize((int) size.getWidth() - 20, internalFrame.getHeight());
}
else if(internalFrame.getHeight() >= Toolkit.getDefaultToolkit().getScreenSize().getHeight() - 120) {
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
getDesktopPane().getSelectedFrame().setSize(internalFrame.getWidth(), (int) size.getHeight() - 120);
}
}
// methods below are delegated to parent.
protected JInternalFrame createImageInternalFrame(String title, Image image) {
return parent.createImageInternalFrame(title, image);
}
protected JDesktopPane getDesktopPane() {
return parent.getDesktopPane();
}
protected CanvasComponent getCanvasOfSelectedFrame() {
if(getDesktopPane() != null)
return parent.getCanvasOfInternalFrame(getDesktopPane().getSelectedFrame());
else
return null;
}
protected CanvasComponent getCanvasOfInternalFrame(JInternalFrame internalFrame) {
return parent.getCanvasOfInternalFrame(internalFrame);
}
protected void setStarBeforeTitle() {
parent.setStarBeforeTitle();
}
protected ImageMementoManager getMementoManager(CanvasComponent canvas) {
return parent.getMementoManager(canvas);
}
protected Map getMementoManagers() {
return parent.getMementoManagers();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -