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

📄 liujiao.java

📁 duixuexiyouyong
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.print.PrinterJob;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Vector;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
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.JPasswordField;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.filechooser.FileFilter;
import javax.swing.undo.UndoManager;

public class liujiao {
    public static void main(String[] args) {
        liujiao.start();
    }
    public static void start() {
        JFrame mainWindow = new MainWindow();
        //mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainWindow.setVisible(true);
    }
}
class MainWindow extends JFrame implements ActionListener, KeyListener,
        MouseListener, UndoableEditListener, WindowListener {
    JMenuBar menuBar;
    JMenu file, edit, see, database, face, help;
    JMenuItem new1, open, save, exit, redo, undo, cut, copy, paste, selectAll,
            newline, metal, motif, windows, helpContent, about, redoPopup,
            undoPopup, cutPopup, copyPopup, pastePopup, selectAllPopup,
            dConection, print, timeDate, find;
    ActionAbout dialog;
    JCheckBoxMenuItem toolBar;
    JToolBar bar;
    JTextArea text; 
    JScrollPane scroll;
    MainWindow exitWindow;
    JFileChooser chooser;
    BufferedReader in;
    PrintWriter write;
    JButton bnew, bopen, bsave, bexit, bredo, bundo, bcut, bcopy, bpaste,
            bselectAll, bhelp, babout, bprint, bfind;
    String metalFace, motifFace, windowsFace;
    boolean textAction = false; // 定义记录文本区第一次按下的行为,实现窗口关闭时,提示用户保存文件
    UndoManager undoManger;// 定义出undo/ redo对象
    JPopupMenu textPopup;
    PrintRequestAttributeSet attributes;
    MainWindow() {
        setTitle("JAVA Word文档编辑器");
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setSize(700, 500);
        setLayout(new BorderLayout());
        // 设置窗口响应事件
        this.addWindowListener(this);
        text = new JTextArea();
        // text = new JTextPane();
        scroll = new JScrollPane(text);
        getContentPane().add(scroll, BorderLayout.CENTER);
        // 设置文本区响应事件
        text.addMouseListener(this);
        text.addKeyListener(this);
        // 设置菜单栏
        menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        // 设置文件菜单
        file = new JMenu("文件(F)");
        file.setMnemonic('F');
        menuBar.add(file);
        new1 = new JMenuItem("新建", new ImageIcon("ico/new16.gif"));
        new1.setHorizontalTextPosition(SwingConstants.RIGHT);
        new1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
                InputEvent.CTRL_MASK));
        open = new JMenuItem("打开", new ImageIcon("ico/open16.gif"));
        open.setHorizontalTextPosition(SwingConstants.RIGHT);
        open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
                InputEvent.CTRL_MASK));
        save = new JMenuItem("保存", new ImageIcon("ico/save16.gif"));
        save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
                InputEvent.CTRL_MASK));
        print = new JMenuItem("打印", new ImageIcon("ico/print16.gif"));
        print.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,
                InputEvent.CTRL_MASK));
        exit = new JMenuItem("退出", new ImageIcon("ico/exit.gif"));
        exit.setHorizontalTextPosition(SwingConstants.RIGHT);
        exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
                InputEvent.CTRL_MASK));
        file.add(new1);
        file.add(open);
        file.add(save);
        file.addSeparator();
        file.add(print);
        file.addSeparator();
        file.add(exit);
        // 增加文件菜单事件响应
        new1.addActionListener(this);
        open.addActionListener(this);
        save.addActionListener(this);
        print.addActionListener(this);
        exit.addActionListener(this);
        // 设置编辑菜单
        edit = new JMenu("编辑(E)");
        edit.setMnemonic('E');
        menuBar.add(edit);
        redo = new JMenuItem("重复", new ImageIcon("ico/redo16.gif"));
        redo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,
                InputEvent.CTRL_MASK));
        undo = new JMenuItem("撤消", new ImageIcon("ico/undo16.gif"));
        undo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,
                InputEvent.CTRL_MASK));
        cut = new JMenuItem("剪贴", new ImageIcon("ico/cut16.gif"));
        cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
                InputEvent.CTRL_MASK));
        copy = new JMenuItem("复制", new ImageIcon("ico/copy16.gif"));
        copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
                InputEvent.CTRL_MASK));
        paste = new JMenuItem("粘贴", new ImageIcon("ico/paste16.gif"));
        paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
                InputEvent.CTRL_MASK));
        timeDate = new JMenuItem("插入日期时间", new ImageIcon("ico/date.gif"));
        timeDate.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,
                InputEvent.CTRL_MASK));
        find = new JMenuItem("查找/替换", new ImageIcon("ico/find16.gif"));
        find.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,
                InputEvent.CTRL_MASK));
        selectAll = new JMenuItem("全选", new ImageIcon("ico/selectAll.gif"));
        selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
                InputEvent.CTRL_MASK));
        edit.add(redo);
        edit.add(undo);
        edit.add(cut);
        edit.add(copy);
        edit.add(paste);
        edit.add(timeDate);
        edit.add(find);
        edit.add(selectAll);
        // 增加编辑菜单事件响应
        redo.addActionListener(this);
        undo.addActionListener(this);
        cut.addActionListener(this);
        copy.addActionListener(this);
        paste.addActionListener(this);
        selectAll.addActionListener(this);
        timeDate.addActionListener(this);
        find.addActionListener(this);
        // 设置查看菜单
        see = new JMenu("查看(V)");
        see.setMnemonic('V');
        newline = new JMenuItem("自动换行");
        toolBar = new JCheckBoxMenuItem("是否隐藏工具栏");
        toolBar.setSelected(true);
        menuBar.add(see);
        see.add(newline);
        see.add(toolBar);
        // 增加工具事件响应
        newline.addActionListener(this);
        toolBar.addActionListener(this);
        // 设置查询数据库菜单
        database = new JMenu("查询数据库(D)");
        database.setMnemonic('D');
        dConection = new JMenuItem("连接数据库", new ImageIcon("ico/cserver.gif"));
        menuBar.add(database);
        database.add(dConection);
        // 增加查询数据库菜单事件响应
        dConection.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Database db = new Database(MainWindow.this);
                db.setVisible(true);
            }
        });
        // 设置外观
        face = new JMenu("外观设置(A)");
        face.setMnemonic('A');
        metal = new JMenuItem("JAVA 外观", new ImageIcon("ico/metal-Inform.gif"));
        motif = new JMenuItem("UNIX 外观", new ImageIcon("ico/metal-Inform.gif"));
        windows = new JMenuItem("Windows 外观", new ImageIcon(
                "ico/metal-Inform.gif"));
        menuBar.add(face);
        face.add(metal);
        face.add(motif);
        face.add(windows);
        // 增加外观事件响应
        metal.addActionListener(this);
        motif.addActionListener(this);
        windows.addActionListener(this);
        // 设置帮助菜单
        help = new JMenu("帮助(H)");
        help.setMnemonic('H');
        menuBar.add(help);
        helpContent = new JMenuItem("帮助内容(H)");
        helpContent.setMnemonic('H');
        helpContent.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0)); // 快捷键为F1,其中的"0"代表不使用控制键
        helpContent.setIcon(new ImageIcon("ico/help16.gif"));
        helpContent.addActionListener(this);
        about = new JMenuItem("关于", new ImageIcon("ico/About16.gif"));
        help.add(helpContent);
        help.add(about);
        about.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dialog = new ActionAbout(MainWindow.this);// 调用自定义关于对话框
                dialog.setVisible(true);
            }
        });
        // 工具栏上按钮定义
        bnew = new JButton(new ImageIcon("ico/new24.gif"));
        bopen = new JButton(new ImageIcon("ico/open24.gif"));
        bsave = new JButton(new ImageIcon("ico/save24.gif"));
        bprint = new JButton(new ImageIcon("ico/print24.gif"));
        bredo = new JButton(new ImageIcon("ico/Redo24.gif"));
        bundo = new JButton(new ImageIcon("ico/undo24.gif"));
        bcut = new JButton(new ImageIcon("ico/cut24.gif"));
        bcopy = new JButton(new ImageIcon("ico/copy24.gif"));
        bpaste = new JButton(new ImageIcon("ico/paste24.gif"));
        bfind = new JButton(new ImageIcon("ico/Find24.gif"));
        bselectAll = new JButton(new ImageIcon("ico/selectAll.gif"));
        bhelp = new JButton(new ImageIcon("ico/Help24.gif"));
        bexit = new JButton(new ImageIcon("ico/shutdown.gif"));
        // 设置提示文本
        bnew.setToolTipText("新建");
        bopen.setToolTipText("打开");
        bsave.setToolTipText("保存");
        bredo.setToolTipText("重复");
        bundo.setToolTipText("撤消");
        bcut.setToolTipText("剪贴");
        bcopy.setToolTipText("复制");
        bpaste.setToolTipText("粘贴");
        bfind.setToolTipText("查找/替换");
        bselectAll.setToolTipText("全选");
        bhelp.setToolTipText("帮助");
        bprint.setToolTipText("打印");
        bexit.setToolTipText("退出");
        bar = new JToolBar();
        getContentPane().add(bar, BorderLayout.NORTH);
        bar.add(bnew);
        bar.add(bopen);
        bar.add(bsave);
        bar.add(bprint);
        bar.addSeparator();
        bar.add(bredo);
        bar.add(bundo);
        bar.add(bcut);
        bar.add(bcopy);
        bar.add(bpaste);
        bar.add(bfind);
        //bar.add(bselectAll);
        bar.addSeparator();
        bar.add(bhelp);
        bar.addSeparator();
        bar.add(bexit);
        // 增加工具栏按钮事件
        bnew.addActionListener(this);
        bopen.addActionListener(this);
        bsave.addActionListener(this);
        bredo.addActionListener(this);
        bundo.addActionListener(this);
        bcut.addActionListener(this);
        bcopy.addActionListener(this);
        bpaste.addActionListener(this);
        bfind.addActionListener(this);
        bselectAll.addActionListener(this);
        bhelp.addActionListener(this);
        bprint.addActionListener(this);
        bexit.addActionListener(this);
        // 设置弹出菜单
        textPopup = new JPopupMenu();
        // text.add(textPopup);
        redoPopup = new JMenuItem("重复", new ImageIcon("ico/redo.jpg"));
        redoPopup.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,

⌨️ 快捷键说明

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