📄 editmenu.java
字号:
}
}
);
cropMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
crop();
checkEditMenuItem();
}
}
);
resizeMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
resize();
checkEditMenuItem();
}
}
);
horizontalMirrorMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
mirror(true);
checkEditMenuItem();
}
}
);
verticalMirrorMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
mirror(false);
checkEditMenuItem();
}
}
);
clockwiseMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
clockwise(false);
checkEditMenuItem();
}
}
);
counterClockwiseMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
clockwise(true);
checkEditMenuItem();
}
}
);
batchMenuItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
batch();
checkEditMenuItem();
}
}
);
// tool bar
foreColorBox.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
Color color = JColorChooser.showDialog(null, "Color information", foreColorBox.getColor());
if(color != null) {
foreColorBox.setColor(color);
foreColorBox.repaint();
JInternalFrame internalFrame = getDesktopPane().getSelectedFrame();
if(internalFrame != null) {
getCanvasOfSelectedFrame().setForeground(color);
}
}
}
});
backColorBox.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
Color color = JColorChooser.showDialog(null, "Color information", backColorBox.getColor());
if(color != null) {
backColorBox.setColor(color);
backColorBox.repaint();
JInternalFrame internalFrame = getDesktopPane().getSelectedFrame();
if(internalFrame != null) {
getCanvasOfSelectedFrame().setBackground(color);
}
}
}
});
selectBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
editMode = CanvasComponent.SelectionMode;
}
});
brushBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
editMode = CanvasComponent.BrushMode;
}
});
textBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
editMode = CanvasComponent.TextMode;
}
});
viewBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
editMode = CanvasComponent.ViewMode;
}
});
brushSpinner.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
if(((Integer) brushSpinner.getValue()).intValue() <= 0) {
brushSpinner.setValue(new Integer(1));
}
}
});
cutBtn.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
copyToClipBoard(true);
pasteToNewMenuItem.setEnabled(true);
checkEditMenuItem();
}
}
);
copyBtn.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
copyToClipBoard(false);
pasteToNewMenuItem.setEnabled(true);
checkEditMenuItem();
}
}
);
pasteBtn.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
paste();
}
}
);
cropBtn.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
crop();
checkEditMenuItem();
}
}
);
// canvas care listener
internalFrameListener = new InternalFrameListener() {
public void internalFrameOpened(InternalFrameEvent e) {
checkEditMenuItem();
if(getDesktopPane().getSelectedFrame() == null)
return;
setEditInfo(getCanvasOfSelectedFrame());
}
public void internalFrameClosing(InternalFrameEvent e) {
}
public void internalFrameClosed(InternalFrameEvent e) {
checkEditMenuItem();
}
public void internalFrameIconified(InternalFrameEvent e) {
checkEditMenuItem();
}
public void internalFrameDeiconified(InternalFrameEvent e) {
checkEditMenuItem();
}
public void internalFrameActivated(InternalFrameEvent e) {
checkEditMenuItem();
}
public void internalFrameDeactivated(InternalFrameEvent e) {
}
};
mouseListener = new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
CanvasComponent canvas = (CanvasComponent) e.getSource();
if(editMode == CanvasComponent.ViewMode) {
canvas.setCursor(viewCursor);
}
else {
canvas.setCursor(null);
}
}
public void mousePressed(MouseEvent e) {
CanvasComponent canvas = (CanvasComponent) e.getSource();
if(canvas.getEditMode() == CanvasComponent.PasteMode) {
if(mergeImage(canvas) != JOptionPane.NO_OPTION)
setEditInfo(canvas);
return;
}
setEditInfo(canvas);
switch(canvas.getEditMode()) {
case 0: // SelectionMode
canvas.setStart(e.getPoint());
break;
case 1: // BrushMode
getMementoManager(canvas).addImage(copyImage(canvas));
canvas.resetRect();
canvas.setStart(e.getPoint());
canvas.repaint();
setStarBeforeTitle();
break;
case 3: // TextMode
if(canvas.getText() != null) {
mergeText(canvas);
}
else {
inputText(canvas);
}
break;
case 4: // ViewMode
if(e.getButton() == MouseEvent.BUTTON1)
canvas.increaseViewScale();
else if(e.getButton() == MouseEvent.BUTTON3)
canvas.decreaseViewScale();
fitAppSize(canvas.getImage());
canvas.repaint();
break;
default: // SelectionMode
canvas.setStart(e.getPoint());
}
}
public void mouseReleased(MouseEvent e) {
CanvasComponent canvas = (CanvasComponent) e.getSource();
canvas.setStart(null);
canvas.setEnd(null);
checkEditMenuItem();
}
};
mouseMotionListener = new MouseMotionListener() {
public void mouseDragged(MouseEvent e) {
CanvasComponent canvas = (CanvasComponent) e.getSource();
switch(canvas.getEditMode()) {
case 0: // SelectionMode
canvas.dragRect(e.getPoint());
break;
case 1: // BrushMode
canvas.setEnd(e.getPoint());
canvas.repaint();
break;
case 3:
case 4:
break;
default: // SelectionMode
canvas.dragRect(e.getPoint());
}
}
public void mouseMoved(MouseEvent e) {
CanvasComponent canvas = (CanvasComponent) e.getSource();
if(canvas.getEditMode() == CanvasComponent.PasteMode ||
canvas.getEditMode() == CanvasComponent.TextMode) {
canvas.setStart(e.getPoint());
canvas.repaint();
}
}
};
}
public JMenu getMenu() {
return editMenu;
}
public JToolBar getToolBar() {
return toolBar;
}
public InternalFrameListener getInternalFrameListener() {
return internalFrameListener;
}
public MouseListener getCanvasMouseListener() {
return mouseListener;
}
public MouseMotionListener getCanvasMouseMotionListener() {
return mouseMotionListener;
}
private void checkEditMenuItem() {
// check all
if(getDesktopPane().getSelectedFrame() == null) {
undoMenuItem.setEnabled(false);
redoMenuItem.setEnabled(false);
cutMenuItem.setEnabled(false);
copyMenuItem.setEnabled(false);
pasteMenuItem.setEnabled(false);
cropMenuItem.setEnabled(false);
resizeMenuItem.setEnabled(false);
horizontalMirrorMenuItem.setEnabled(false);
verticalMirrorMenuItem.setEnabled(false);
clockwiseMenuItem.setEnabled(false);
counterClockwiseMenuItem.setEnabled(false);
batchMenuItem.setEnabled(false);
cutBtn.setEnabled(false);
copyBtn.setEnabled(false);
pasteBtn.setEnabled(false);
cropBtn.setEnabled(false);
return;
}
else {
resizeMenuItem.setEnabled(true);
horizontalMirrorMenuItem.setEnabled(true);
verticalMirrorMenuItem.setEnabled(true);
clockwiseMenuItem.setEnabled(true);
counterClockwiseMenuItem.setEnabled(true);
batchMenuItem.setEnabled(true);
}
CanvasComponent canvas = getCanvasOfSelectedFrame();
// check cut, copy and paste menuitem
if(canvas.getSelectedRect().getWidth() <= 0) {
cutMenuItem.setEnabled(false);
copyMenuItem.setEnabled(false);
cropMenuItem.setEnabled(false);
cutBtn.setEnabled(false);
copyBtn.setEnabled(false);
cropBtn.setEnabled(false);
}
else {
cutMenuItem.setEnabled(true);
copyMenuItem.setEnabled(true);
cropMenuItem.setEnabled(true);
cutBtn.setEnabled(true);
copyBtn.setEnabled(true);
cropBtn.setEnabled(true);
}
// check paste menuitem
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -