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

📄 editmenu.java

📁 一个用Java 造成的小画家
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    }
                }
            );

        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 + -