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

📄 copycutpaste.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
字号:
package net.aetherial.gis.surface.main;

import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import javax.swing.undo.UndoManager;
import javax.swing.undo.CannotUndoException;
import javax.swing.text.JTextComponent;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class CopyCutPaste extends MouseAdapter{
  JPopupMenu jPopupMenu = new JPopupMenu();
  JMenuItem jMenuItemResume = new JMenuItem();
  JMenuItem jMenuItemCopy = new JMenuItem();
  JMenuItem jMenuItemCut = new JMenuItem();
  JMenuItem jMenuItemPaste = new JMenuItem();
  private JTextComponent jc = null;
  CopyCutPaste_jMenuItem_actionAdapter ccp = new CopyCutPaste_jMenuItem_actionAdapter(this);
  protected UndoManager undo = new UndoManager();
  public CopyCutPaste(JTextComponent jc) {
    try {
      jbInit();
      this.jc = jc;
    }
    catch (Exception exception) {
      exception.printStackTrace();
    }
  }

  public void mouseReleased(MouseEvent e) {
    maybeShowPopup(e);
  }

  private void maybeShowPopup(MouseEvent e) {
    if (e.isPopupTrigger()) {
      this.jPopupMenu.show(e.getComponent(),
                           e.getX(), e.getY());
    }
//    System.out.println("[Class CopyCutPaste]e.getX():" + e.getX() + ", e.getY():" +  e.getY());
  }


  /**
   * 设置撤销是否能用
   */
  public void setResumeEnable(boolean enable) {
    this.jMenuItemResume.setEnabled(enable);
  }

  /**
   * 设置拷贝是否能用
   */
  public void setResumeCopy(boolean enable) {
    this.jMenuItemCopy.setEnabled(enable);
  }

  /**
   * 设置粘贴是否能用
   */
  public void setPasteEnable(boolean enable) {
    this.jMenuItemPaste.setEnabled(enable);
  }

  /**
   * 设置剪切是否能用
   */
  public void setCutEnable(boolean enable) {
    this.jMenuItemCut.setEnabled(enable);
  }
  public void show(){

  }
  private void jbInit() throws Exception {
    jMenuItemResume.setText("撤销");
    jMenuItemCopy.setText("拷贝");
    jMenuItemPaste.setText("粘贴");
    jMenuItemCut.setText("剪切");

    jMenuItemResume.addActionListener(ccp);
    jMenuItemCopy.addActionListener(ccp);
    jMenuItemCut.addActionListener(ccp);
    jMenuItemPaste.addActionListener(ccp);
    jPopupMenu.add(jMenuItemResume);
    jPopupMenu.addSeparator();
    jPopupMenu.add(jMenuItemCut);
    jPopupMenu.add(jMenuItemCopy);
    jPopupMenu.addSeparator();
    jPopupMenu.add(jMenuItemPaste);
    this.init();
  }

  private void init(){
    /**
     * 因为撤销暂不知道怎么写,把这个enable设置false;
     */
    //jMenuItemResume.setEnabled(false);
    if (this.undo.canUndo()) {
      jMenuItemResume.setEnabled(true);
    }else{
      jMenuItemResume.setEnabled(false);
    }
    jMenuItemResume.setAccelerator(
      KeyStroke.getKeyStroke(KeyEvent.VK_Z, ActionEvent.CTRL_MASK));
    jMenuItemCopy.setAccelerator(
      KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK));
    jMenuItemCut.setAccelerator(
      KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK));
    jMenuItemPaste.setAccelerator(
      KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK));
  }
  public static void main(String[] args) {
    CopyCutPaste copycutpaste = new CopyCutPaste(null);
  }

  public void jMenuItem_actionPerformed(ActionEvent e) {
    if (e.getSource().equals(this.jMenuItemResume)) {
      if (undo.canUndo()) {
        try {
          undo.undo();
        }
        catch (CannotUndoException ex) {
          System.out.println("Unable to undo: " + ex);
          ex.printStackTrace();
        }
        if (!undo.canUndo()) {
          this.jMenuItemResume.setEnabled(false);
        }
      }

    }
    else if (e.getSource().equals(this.jMenuItemCopy)) {
        this.jc.copy();
    }
    else if (e.getSource().equals(this.jMenuItemCut)) {
      this.jc.cut();
    }
    else if (e.getSource().equals(this.jMenuItemPaste)) {
      this.jc.paste();
    }
  }
}

class CopyCutPaste_jMenuItem_actionAdapter
    implements ActionListener {
  private CopyCutPaste adaptee;
  CopyCutPaste_jMenuItem_actionAdapter(CopyCutPaste adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem_actionPerformed(e);
  }
}

⌨️ 快捷键说明

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