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

📄 notepad_frame1.java

📁 这是一个用JAVA编写的文本编辑器,主要实现了部分简单常用的功能.(并且能够实现界面风格的转换).本人发布此源码的原因是为了和所以喜欢JAVA的朋友交流交流有关Swing方面的知识,由于限本人的技术原
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
package notepad;

import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Date;
import java.util.Enumeration;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JDesktopPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JToolBar;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileView;

//**********************************************************************
/**
 * <p>Title: </p>
 * <p>Description: 编辑器主窗口</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
//**********************************************************************
public class Notepad_Frame1 extends JFrame
{
  //********************************************************************
  //静态变量
  //********************************************************************

  /** 子窗口Vector */
  static Vector vectorFile = new Vector();
  
  /** 
   * private static final String mac = "com.sun.java.swing.plaf.mac.MacLookAndFeel";
   */
  
  /** JAVA风格 */
  private static final String metal = "javax.swing.plaf.metal.MetalLookAndFeel";
        
  /** motif风格 */
  private static final String motif = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
        
  /** windows风格 */
  private static final String windows = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";

  // 定义窗口风格变量
  private static String currentLookAndFeel = metal;
  
  //********************************************************************
  //private变量
  //********************************************************************

  /** 主窗口容器 */
  public JDesktopPane desktopPane = null;
  
  /** 子窗口容器 */
  public JInternalFrame internalFrame = null;
  
  /** 子窗口个数同时用于显示于默认子窗口文???? */
  private int count = 1;
  
  /** 子窗口 */
  private newInteface selectFrame = null;

  /** 主容器面板 */
  private JPanel contentPane = new JPanel();
  
  /** 菜单栏 */
  private JMenuBar jMenuBar1 = new JMenuBar();
  
  /** 菜单栏(帮助) */
  private JMenu jMenuHelp = new JMenu();
  
  /** 菜单栏(文件) */
  private JMenu jMenuFile = new JMenu();
  
  /** 菜单栏(编辑) */
  private JMenu jMenuEdit = new JMenu();
  
  /** 菜单栏(视图) */
  private JMenu jMenuView = new JMenu();
  
  /** 菜单栏(外观) */
  private JMenu jMenuWaiGuan = new JMenu();
  
  /** 菜单栏(格式) */
  private JMenu jMenuFormat = new JMenu();

  /** 菜单栏(退出) */
  private JMenuItem jMenuFileExit = new JMenuItem();
  
  /** 菜单栏(关于) */
  private JMenuItem jMenuHelpAbout = new JMenuItem();
  
  /** 工具栏 */
  private JToolBar jToolBar = new JToolBar();
  
  /** 工具栏打开按键 */
  private JButton jButtonOpen = new JButton();
  
  /** 工具栏关闭按键 */
  private JButton jButtonClose = new JButton();  
  
  /** 工具栏保存按键 */
  public JButton jButtonSave = new JButton();
  
  /** 工具栏撤消按键 */
  private JButton jButtonUndo = new JButton();
  
  /** 工具栏重做按键 */
  private JButton jButtonRedo = new JButton();
  
  /** 工具栏拷贝按键 */
  public JButton jButtonCopy = new JButton();
  
  /** 工具栏粘贴按键 */
  public JButton jButtonPaste = new JButton();
  
  /** 工具栏剪切按键 */
  public JButton jButtonCut = new JButton();

  /** 工具栏帮助按键 */
  private JButton jButtonHelp = new JButton();  
  
  /** 工具栏新建按键 */
  private JButton jButtonNew = new JButton();
  
  /** 打开文件图键 */
  private ImageIcon imageOpenFile;        
  
  /** 关闭文件图键 */
  private ImageIcon imageCloseFile;        
  
  /** 帮助图标 */
  private ImageIcon imageHelp;             
  
  /** 保存文件图标 */
  private ImageIcon imageSave;             
  
  /** 撤消图标 */
  private ImageIcon imageUndo;             
  
  /** 重做图标 */
  private ImageIcon imageRedo;             
  
  /** 拷贝图标 */
  private ImageIcon imageCopy;             
  
  /** 粘贴图标 */
  private ImageIcon imagePaste;            
  
  /** 剪切图标 */
  private ImageIcon imageCut;              
  
  /** 新建图标 */
  private ImageIcon imageNew;              
  
  /** 标题图标 */
  private Image imageTitle;                
  
  /** 窗口布局 */
  private BorderLayout borderLayout1 = new BorderLayout();

  /** 菜单项(打开) */
  private JMenuItem jMenuFileOpen = new JMenuItem();
  
  /** 菜单项(新建) */
  private JMenuItem jMenuFileNew = new JMenuItem();
  
  /** 菜单项(保存) */
  public JMenuItem jMenuFileSave = new JMenuItem();
  
  /** 菜单项(另存为) */
  public JMenuItem jMenuFileSaveAs = new JMenuItem();
  
  /** 菜单项(页面设置) */
  private JMenuItem jMenuPageSetup = new JMenuItem();
  
  /** 菜单项(打印) */
  private JMenuItem jMenuFilePrint = new JMenuItem();

  /** 菜单项(重做) */
  private JMenuItem jMenuEditUndo = new JMenuItem();
  
  /** 菜单项(剪切) */
  public JMenuItem jMenuEditCut = new JMenuItem();
  
  /** 菜单项(拷贝) */
  public JMenuItem jMenuEditCopy = new JMenuItem();
  
  /** 菜单项(粘贴) */
  public JMenuItem jMenuEditPaste = new JMenuItem();
  
  /** 菜单项(删除) */
  private JMenuItem jMenuEditDelete = new JMenuItem();
  
  /** 菜单项(字休) */
  private JMenuItem jMenuFormatFont = new JMenuItem();
  
  /** 菜单项(查找) */
  public JMenuItem jMenuFind = new JMenuItem();
  
  /** 菜单项(查找并替换) */
  public JMenuItem jMenuFindReplace = new JMenuItem();
  
  /** 菜单项(状态栏) */
  private JCheckBoxMenuItem jCheckBoxMenuViewStatusBar = new JCheckBoxMenuItem();
  
  /** 菜单项(工具栏) */
  private JCheckBoxMenuItem jCheckBoxMenuViewToolBar = new JCheckBoxMenuItem();
  
  /** 菜单项(全选) */
  public JMenuItem jMenuEditSelectAll = new JMenuItem();
  
  /** 菜单项(java风格) */
  private JRadioButtonMenuItem jRadioButtonMenuJava = new JRadioButtonMenuItem();
  
  /** 菜单项(motif风格) */
  private JRadioButtonMenuItem jRadioButtonMenuMotif = new JRadioButtonMenuItem();
  
  /** 菜单项(windows风格) */
  private JRadioButtonMenuItem jRadioButtonMenuWindows = new JRadioButtonMenuItem();
  
  /** 状态栏面板 */
  private JPanel jPanelstatus = new JPanel();
  
  /** 网格布局 */
  private GridLayout gridLayout1 = new GridLayout();
  
  /** 状态栏标签 */
  private JLabel statusBar = new JLabel();
  
  /** 状态栏标签(显示时间) */
  private JLabel statusBarTime = new JLabel();
  
  /** 状态栏标签(显示坐标) */
  public JLabel statusBarXY = new JLabel();
  
  /** 当前日期及时间 */
  private Date time = new Date();
  
  /** JFileChooser filechooser = new JFileChooser(); */
 
  /** 文件 */
  private File file = null;
  
  /** changeTextArea等于true表示文本内容改变,关闭时需提示保存,fals则没有改变 */
  public boolean chanageTextArea = false;
  

  //********************************************************************
  //方法定义
  //********************************************************************

  //********************************************************************
  /**
   * 构造方法
   *
   */
  //********************************************************************

  public Notepad_Frame1()
  {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    
    try {
      
      jbInit();
    } catch (Exception e) {
      
      e.printStackTrace();
    }
  }

  //********************************************************************
  //public方法
  //********************************************************************

  //********************************************************************
  /**
   * 初始化变量
   *
   * @exception Exception  
   *
   */
  //********************************************************************

  private void jbInit() throws Exception
  {
    desktopPane = new JDesktopPane();
    internalFrame = new JInternalFrame();
    Toolkit kt = Toolkit.getDefaultToolkit();
    
    //窗口左上角图标加载 
    imageTitle = kt.getImage(notepad.Notepad_Frame1.class.getResource("ImageTitle1.gif"));
System.out.println(kt.getScreenSize());
    //窗口左上角图标设置 
    this.setIconImage(imageTitle);
    
    //图标装载 
    imageOpenFile = new ImageIcon(notepad.Notepad_Frame1.class.getResource("openFile.png"));
    imageCloseFile = new ImageIcon(notepad.Notepad_Frame1.class.getResource("closeFile.png"));
    imageHelp = new ImageIcon(notepad.Notepad_Frame1.class.getResource("help.png"));
    imageSave = new ImageIcon(notepad.Notepad_Frame1.class.getResource("saveFile.gif"));
    imageUndo = new ImageIcon(notepad.Notepad_Frame1.class.getResource("undo.gif"));
    imageRedo = new ImageIcon(notepad.Notepad_Frame1.class.getResource("redo.gif"));
    imageCopy = new ImageIcon(notepad.Notepad_Frame1.class.getResource("copy.gif"));
    imagePaste = new ImageIcon(notepad.Notepad_Frame1.class.getResource("paste.gif"));
    imageCut = new ImageIcon(notepad.Notepad_Frame1.class.getResource("cut.gif"));
    imageNew = new ImageIcon(notepad.Notepad_Frame1.class.getResource("newFile.gif"));
    
    contentPane = (JPanel)this.getContentPane();
    
    //主容器布局设置 
    contentPane.setLayout(borderLayout1);
    
    //屏幕的窥胰取得 
    int notepad_Frame1Width = Toolkit.getDefaultToolkit().getScreenSize().width;
  
    //屏幕的长度取得 
    int notepad_Frame1Height = Toolkit.getDefaultToolkit().getScreenSize().height-20;
    
    //设置主容器大小为屏幕的大小 
    this.setSize(new Dimension(notepad_Frame1Width, notepad_Frame1Height));
    
    //设置程序标题栏 
    this.setTitle("JHelper");
    
    jMenuFile.setToolTipText("");
    jMenuFile.setText("文件");
    jMenuFileExit.setText("Exit");
    
    //退出系统快捷设置(Ctrl+W) 
    jMenuFileExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke('W',KeyEvent.CTRL_MASK, false));
    
    jMenuFileExit.addActionListener(new Notepad_Frame1_jMenuFileExit_ActionAdapter(this));
    jMenuHelp.setToolTipText("");
    jMenuHelp.setText("帮助");
    jMenuHelpAbout.setToolTipText("");
    jMenuHelpAbout.setText("关于...");
    
    //帮助快捷设置(Ctrl+H) 
    jMenuHelpAbout.setAccelerator(javax.swing.KeyStroke.getKeyStroke('H',KeyEvent.CTRL_MASK, false));
    jMenuHelpAbout.addActionListener(new Notepad_Frame1_jMenuHelpAbout_ActionAdapter(this));
    jButtonOpen.setIcon(imageOpenFile);
    jButtonOpen.addActionListener(new Notepad_Frame1_jButtonOpen_actionAdapter(this));
    jButtonOpen.setToolTipText("打开(Ctrl+O)");
    jButtonClose.setIcon(imageCloseFile);
    jButtonClose.addActionListener(new Notepad_Frame1_jButtonClose_actionAdapter(this));
    jButtonClose.setToolTipText("关闭(Ctrl+W)");
    jButtonHelp.setIcon(imageHelp);
    jButtonHelp.addActionListener(new Notepad_Frame1_jButtonHelp_actionAdapter(this));
    
    //工具栏帮助快捷键大小设置 
    jButtonHelp.setMaximumSize(new Dimension(28, 28));
    jButtonHelp.setMinimumSize(new Dimension(28, 28));
    jButtonHelp.setToolTipText("帮助");
    jButtonSave.setIcon(imageSave);
    jButtonSave.setEnabled(false);
    jMenuFileOpen.setToolTipText("");
    jMenuFileOpen.setText("打开...");
    
    //打开快捷键设置(Ctrl+O)
    jMenuFileOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke('O',java.awt.event.KeyEvent.CTRL_MASK, false));
    jMenuFileOpen.addActionListener(new Notepad_Frame1_jMenuFileOpen_actionAdapter(this));
    jMenuFileNew.setToolTipText("");
    jMenuFileNew.setText("新建");

⌨️ 快捷键说明

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