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

📄 ezcelldemo.java

📁 用Java写的报表.功能如下: 0.内建网络打印,网络预览功能! 1.文件操作。包括url 指定的文件。 2.全功能打印支持。包括打印预览。 3.Undo 和 redo。 4.合并单元格。 5.Cel
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/*
 * Copyright 2002 EZCell , Inc. All rights reserved.
 * Version  1.0.
 * Author   W.John
 */
package ezcell;

import java.awt.*;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import java.io.File;

import java.sql.*;

import javax.swing.AbstractAction;
import javax.swing.AbstractButton;
import javax.swing.Action;
import javax.swing.ButtonGroup;
import javax.swing.ButtonModel;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
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.JToggleButton;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;


/**
 * EZCellDemo 用来测试EZCell JavaBean 的主类。
 *
 * 从JFrame 派生,用来包含菜单,工具栏,EZCell 类
 *
 * @version 1.00
 * @author W.John
 */
public class EZCellDemo extends JFrame implements EZCellListener {
    // 文件打开保存对话框
    static protected JFileChooser fileChooser;

    // 各命令常值
    final static int FILE_NEW = 0;
    final static int FILE_OPEN = FILE_NEW + 1;
    final static int FILE_SAVE = FILE_OPEN + 1;
    final static int FILE_SAVEAS = FILE_SAVE + 1;
    final static int FILE_PRINT = FILE_SAVEAS + 1;
    final static int FILE_PRRINTSETUP = FILE_PRINT + 1;
    final static int FILE_PRINTPREVIEW = FILE_PRRINTSETUP + 1;
    final static int FILE_EXPORT_AS_POSTSCRIPT = FILE_PRINTPREVIEW + 1;
    final static int FILE_EXIT = FILE_EXPORT_AS_POSTSCRIPT + 1;
    final static int EDIT_UNDO = FILE_EXIT + 1;
    final static int EDIT_REDO = EDIT_UNDO + 1;
    final static int EDIT_COPY = EDIT_REDO + 1;
    final static int EDIT_CUT = EDIT_COPY + 1;
    final static int EDIT_PASTE = EDIT_CUT + 1;
    final static int EDIT_PASTE_WITH_FORMAT = EDIT_PASTE + 1;
    final static int EDIT_CLEAR = EDIT_PASTE_WITH_FORMAT + 1;
    final static int EDIT_CLEAR_WITH_FORMAT = EDIT_CLEAR + 1;
    final static int EDIT_CHECK_SPELL = EDIT_CLEAR_WITH_FORMAT + 1;
    final static int EDIT_DELETE_ROW = EDIT_CHECK_SPELL + 1;
    final static int EDIT_INSERT_ROW = EDIT_DELETE_ROW + 1;
    final static int EDIT_DELETE_COL = EDIT_INSERT_ROW + 1;
    final static int EDIT_INSERT_COL = EDIT_DELETE_COL + 1;
    final static int EDIT_DELETE_SHEET = EDIT_INSERT_COL + 1;
    final static int EDIT_INSERT_SHEET = EDIT_DELETE_SHEET + 1;
    final static int EDIT_SHEET_PROPERTY = EDIT_INSERT_SHEET + 1;
    final static int EDIT_BOOK_PROPERTY = EDIT_SHEET_PROPERTY + 1;
    final static int VIEW_TOGGLE_TOOLBAR = EDIT_BOOK_PROPERTY + 1;
    final static int VIEW_TOGGLE_SCROLLBAR = VIEW_TOGGLE_TOOLBAR + 1;
    final static int VIEW_TOGGLE_TOP_HEADER = VIEW_TOGGLE_SCROLLBAR + 1;
    final static int VIEW_TOGGLE_LEFT_HEADER = VIEW_TOGGLE_TOP_HEADER + 1;
    final static int VIEW_TOGGLE_GRID_X = VIEW_TOGGLE_LEFT_HEADER + 1;
    final static int VIEW_TOGGLE_GRID_Y = VIEW_TOGGLE_GRID_X + 1;
    final static int VIEW_TOGGLE_SELECTION = VIEW_TOGGLE_GRID_Y + 1;
    final static int VIEW_ZOOM_IN = VIEW_TOGGLE_SELECTION + 1;
    final static int VIEW_ZOOM_OUT = VIEW_ZOOM_IN + 1;
    final static int VIEW_ZOOM_TO = VIEW_ZOOM_OUT + 1;
    final static int VIEW_ZOOM_TO_200 = VIEW_ZOOM_TO + 1;
    final static int VIEW_ZOOM_TO_100 = VIEW_ZOOM_TO_200 + 1;
    final static int VIEW_ZOOM_TO_75 = VIEW_ZOOM_TO_100 + 1;
    final static int VIEW_ZOOM_TO_50 = VIEW_ZOOM_TO_75 + 1;
    final static int VIEW_ZOOM_TO_25 = VIEW_ZOOM_TO_50 + 1;
    final static int VIEW_PAGE = VIEW_ZOOM_TO_25 + 1;
    final static int VIEW_OPTION = VIEW_PAGE + 1;
    final static int SEARCH_FIND = VIEW_OPTION + 1;
    final static int SEARCH_REPLACE = SEARCH_FIND + 1;
    final static int SEARCH_FIND_NEXT = SEARCH_REPLACE + 1;
    final static int SEARCH_GOTO = SEARCH_FIND_NEXT + 1;
    final static int FORMAT_FONT = SEARCH_GOTO + 1;
    final static int FORMAT_FONT_NAME = FORMAT_FONT + 1;
    final static int FORMAT_FONT_SIZE = FORMAT_FONT_NAME + 1;
    final static int FORMAT_FONT_BOLD = FORMAT_FONT_SIZE + 1;
    final static int FORMAT_FONT_ITALIC = FORMAT_FONT_BOLD + 1;
    final static int FORMAT_FONT_PLAIN = FORMAT_FONT_ITALIC + 1;
    final static int FORMAT_FONT_OUTLINE = FORMAT_FONT_PLAIN + 1;
    final static int FORMAT_TEXT_BRUSH = FORMAT_FONT_OUTLINE + 1;
    final static int FORMAT_TEXT_COLOR = FORMAT_TEXT_BRUSH + 1;
    final static int FORMAT_BACK_BRUSH = FORMAT_TEXT_COLOR + 1;
    final static int FORMAT_BACK_COLOR = FORMAT_BACK_BRUSH + 1;
    final static int FORMAT_ALIGN_X = FORMAT_BACK_COLOR + 1;
    final static int FORMAT_ALIGN_LEFT = FORMAT_ALIGN_X + 1;
    final static int FORMAT_ALIGN_RIGHT = FORMAT_ALIGN_LEFT + 1;
    final static int FORMAT_ALIGN_X_CENTER = FORMAT_ALIGN_RIGHT + 1;
    final static int FORMAT_ALIGN_Y = FORMAT_ALIGN_X_CENTER + 1;
    final static int FORMAT_ALIGN_TOP = FORMAT_ALIGN_Y + 1;
    final static int FORMAT_ALIGN_BOTTOM = FORMAT_ALIGN_TOP + 1;
    final static int FORMAT_ALIGN_Y_CENTER = FORMAT_ALIGN_BOTTOM + 1;
    final static int FORMAT_WORD_WRAP = FORMAT_ALIGN_Y_CENTER + 1;
    final static int FORMAT_BORDER = FORMAT_WORD_WRAP + 1;
    final static int FORMAT_MERGE = FORMAT_BORDER + 1;
    final static int FORMAT_NUMBER_FORMAT = FORMAT_MERGE + 1;
    final static int FORMAT_ROWS_HEIGHT = FORMAT_NUMBER_FORMAT + 1;
    final static int FORMAT_COLS_WIDTH = FORMAT_ROWS_HEIGHT + 1;
    final static int DATABASE_IMPORT_DATASET = FORMAT_COLS_WIDTH + 1;
    final static int MENUITEM = 1;
    final static int MENU = 2;
    final static int RADIOMENU = 4;
    final static int CHECKBOXMENU = 8;
    final static int BUTTON = 16;
    final static int TOGGLEBUTTON = 32;
    final static int SELECTED = 64;

    // 包含的JAVABEAN
    protected EZCell cellBean;

    // 所有工具栏
    protected JToolBar fileTB;
    protected JToolBar editTB;
    protected JToolBar searchTB;
    protected JToolBar viewTB;
    protected JToolBar formatTB;
    protected JPanel toolpane;

    // 所有菜单条
    protected JMenu fileMN;
    protected JMenu editMN;
    protected JMenu searchMN;
    protected JMenu viewMN;
    protected JMenu formatMN;
    protected JMenu databaseMN;
    protected SimpleFilter fileFilter;

    // 如果是因为焦点的单元格变动,而引起的命令,忽略进行操作,
    // 参见 AH.actionPerformed(),updateUI().
    private boolean skipCommand;
    EmptyIcon ei = new EmptyIcon(16, 16);

    // Action handler,消息处理器
    AH[] ahs = {
        new AH(FILE_NEW, "New...", "/icons/new.gif", ctrl(KeyEvent.VK_N),
               MENUITEM | BUTTON), //
        new AH(FILE_OPEN, "Open...", "/icons/open.gif", ctrl(KeyEvent.VK_O),
               MENUITEM | BUTTON), //
        new AH(FILE_SAVE, "Save", "/icons/save.gif", ctrl(KeyEvent.VK_S),
               MENUITEM | BUTTON), //
        new AH(FILE_SAVEAS, "Save As...", "/icons/saveas.gif", null, MENUITEM), //
        new AH(FILE_PRINT, "Print", "/icons/print.gif", ctrl(KeyEvent.VK_P),
               MENUITEM | BUTTON), //
        new AH(FILE_PRRINTSETUP, "Print Setup...", null, null, MENUITEM), //
        new AH(FILE_PRINTPREVIEW, "Print Preview...", "/icons/printpreview.gif", null,
               MENUITEM | BUTTON), //
        new AH(FILE_EXPORT_AS_POSTSCRIPT, "Export As Postscript file ", null, null,
               MENUITEM), //
        new AH(FILE_EXIT, "Exit", "/icons/exit.gif", null, MENUITEM), //
        new AH(EDIT_UNDO, "Undo", "/icons/undo.gif", ctrl(KeyEvent.VK_Z),
               MENUITEM | BUTTON), //
        new AH(EDIT_REDO, "Redo", "/icons/redo.gif", ctrl(KeyEvent.VK_Y),
               MENUITEM | BUTTON), //
        new AH(EDIT_COPY, "Copy", "/icons/copy.gif", ctrl(KeyEvent.VK_C),
               MENUITEM | BUTTON), //
        new AH(EDIT_CUT, "Cut", "/icons/cut.gif", ctrl(KeyEvent.VK_X), MENUITEM |
               BUTTON), //
        new AH(EDIT_PASTE, "Paste", "/icons/paste.gif", ctrl(KeyEvent.VK_V),
               MENUITEM | BUTTON), //
        new AH(EDIT_PASTE_WITH_FORMAT, "Paste All", null, null, MENUITEM), //
        new AH(EDIT_CLEAR, "Clear", "/icons/clear.gif", key(KeyEvent.VK_DELETE),
               MENUITEM | BUTTON), //
        new AH(EDIT_CLEAR_WITH_FORMAT, "Clear All", null, null, MENUITEM), //
        new AH(EDIT_CHECK_SPELL, "Check Spell", null, null, MENUITEM), //
        new AH(EDIT_DELETE_ROW, "Delete Row", "/icons/deleterow.gif", null,
               MENUITEM | BUTTON), //
        new AH(EDIT_INSERT_ROW, "Insert Row", "/icons/insertrow.gif", null,
               MENUITEM | BUTTON), //
        new AH(EDIT_DELETE_COL, "Delete Column", "/icons/deletecol.gif", null,
               MENUITEM | BUTTON), //
        new AH(EDIT_INSERT_COL, "Insert Column", "/icons/insertcol.gif", null,
               MENUITEM | BUTTON), //
        new AH(EDIT_DELETE_SHEET, "Delete Sheet", null, null, MENUITEM), //
        new AH(EDIT_INSERT_SHEET, "Insert Sheet", null, null, MENUITEM), //
        new AH(EDIT_SHEET_PROPERTY, "Sheet Property...", null, null, MENUITEM), //
        new AH(EDIT_BOOK_PROPERTY, "Book Property...", null, null, MENUITEM), //
        new AH(VIEW_TOGGLE_TOOLBAR, "Toolbar", null, null, CHECKBOXMENU | SELECTED), //
        new AH(VIEW_TOGGLE_SCROLLBAR, "Scrollbar ", null, null, CHECKBOXMENU |
               SELECTED), //
        new AH(VIEW_TOGGLE_TOP_HEADER, "Top Header", null, null, CHECKBOXMENU |
               SELECTED), //
        new AH(VIEW_TOGGLE_LEFT_HEADER, "Left Header", null, null,
               CHECKBOXMENU | SELECTED), //
        new AH(VIEW_TOGGLE_GRID_X, "Grid X", null, null, CHECKBOXMENU | SELECTED), //
        new AH(VIEW_TOGGLE_GRID_Y, "Grid Y", null, null, CHECKBOXMENU | SELECTED), //
        new AH(VIEW_TOGGLE_SELECTION, "Selection", null, null, CHECKBOXMENU | SELECTED), //
        new AH(VIEW_ZOOM_IN, "Zoom In", "/icons/zoomin.gif", ctrl(KeyEvent.VK_PLUS),
               MENUITEM | BUTTON), //
        new AH(VIEW_ZOOM_OUT, "Zoom Out", "/icons/zoomout.gif", ctrl(KeyEvent.VK_MINUS),
               MENUITEM | BUTTON), //
        new AH(VIEW_ZOOM_TO, "Zoom To", null, ctrl(KeyEvent.VK_M), MENU), //
        new AH(VIEW_ZOOM_TO_200, "200%", null, null, RADIOMENU), //
        new AH(VIEW_ZOOM_TO_100, "100%", null, null, RADIOMENU | SELECTED), //
        new AH(VIEW_ZOOM_TO_75, "75%", null, null, RADIOMENU), //
        new AH(VIEW_ZOOM_TO_50, "50%", null, null, RADIOMENU), //
        new AH(VIEW_ZOOM_TO_25, "25%", null, null, RADIOMENU),
        new AH(VIEW_PAGE, "Page Header/Footer...", "/icons/page.gif", null,
               CHECKBOXMENU | TOGGLEBUTTON),
        new AH(VIEW_OPTION, "Option...", "/icons/option.gif", null, MENUITEM | BUTTON), //
        new AH(SEARCH_FIND, "Find...", "/icons/find.gif", ctrl(KeyEvent.VK_F),
               MENUITEM | BUTTON), //
        new AH(SEARCH_REPLACE, "Replace...", "/icons/replace.gif", ctrl(KeyEvent.VK_R),
               MENUITEM), //
        new AH(SEARCH_FIND_NEXT, "Find Next", null, key(KeyEvent.VK_F3), MENUITEM), //
        new AH(SEARCH_GOTO, "Go to...", null, null, MENUITEM), //
        new AH(FORMAT_FONT, "Font...", null, null, MENUITEM), //
        new AH(FORMAT_FONT_NAME, "Font Name", null, null, 0), //
        new AH(FORMAT_FONT_SIZE, "Font Size", null, null, 0), //
        new AH(FORMAT_FONT_BOLD, "Font Bold", "/icons/bold.gif", null, TOGGLEBUTTON), //
        new AH(FORMAT_FONT_ITALIC, "Font Italic", "/icons/italic.gif", null, TOGGLEBUTTON), //
        new AH(FORMAT_FONT_PLAIN, "Font Plain", "/icons/plain.gif", null, TOGGLEBUTTON), //
        new AH(FORMAT_FONT_OUTLINE, "Font Outline", "/icons/outline.gif", null,
               TOGGLEBUTTON), //
        new AH(FORMAT_TEXT_BRUSH, "Text Brush...", "/icons/forecolor.gif", null, MENUITEM), //
        new AH(FORMAT_TEXT_COLOR, "Text Color...", null, null, 0), //
        new AH(FORMAT_BACK_BRUSH, "Background Brush...", "/icons/backcolor.gif", null,
               MENUITEM), //
        new AH(FORMAT_BACK_COLOR, "Background Color...", null, null, 0), //
        new AH(FORMAT_ALIGN_X, "Alginment X", null, null, MENU), //
        new AH(FORMAT_ALIGN_LEFT, "Left", "/icons/left.gif", null,
               RADIOMENU | TOGGLEBUTTON), //
        new AH(FORMAT_ALIGN_RIGHT, "Right", "/icons/right.gif", null,
               RADIOMENU | TOGGLEBUTTON), //
        new AH(FORMAT_ALIGN_X_CENTER, "X Center", "/icons/xcenter.gif", null,
               RADIOMENU | TOGGLEBUTTON), //
        new AH(FORMAT_ALIGN_Y, "Alginment Y", null, null, MENU), //
        new AH(FORMAT_ALIGN_TOP, "Top", "/icons/top.gif", null, RADIOMENU |
               TOGGLEBUTTON), //
        new AH(FORMAT_ALIGN_BOTTOM, "Bottom", "/icons/bottom.gif", null,
               RADIOMENU | TOGGLEBUTTON), //
        new AH(FORMAT_ALIGN_Y_CENTER, "Y Center", "/icons/ycenter.gif", null,
               RADIOMENU | TOGGLEBUTTON), //
        new AH(FORMAT_WORD_WRAP, "Word Wrap", "/icons/wrap.gif", null,
               CHECKBOXMENU | TOGGLEBUTTON), //
        new AH(FORMAT_BORDER, "Borders...", "/icons/border.gif", null, MENUITEM |
               BUTTON), //
        new AH(FORMAT_MERGE, "Merge", "/icons/merge.gif", null,
               CHECKBOXMENU | TOGGLEBUTTON), //
        new AH(FORMAT_NUMBER_FORMAT, "Number Format...", "/icons/numberformat.gif", null,
               MENUITEM), //
        new AH(FORMAT_ROWS_HEIGHT, "Rows Height...", null, null, MENUITEM), //
        new AH(FORMAT_COLS_WIDTH, "Columns Width...", null, null, MENUITEM),
        new AH(DATABASE_IMPORT_DATASET, "Import Dataset", null, null, MENUITEM)
    };

    /**
     * Creates a new EZCellDemo object.
     */
    EZCellDemo() {
        super("ZCell V1.0");
        init();
    }

    /**
     * DOCUMENT ME!
     *
     * @param cellBean DOCUMENT ME!
     */
    public void activeCellChanged(EZCell cellBean) {
        //改变相应菜单和工具栏的设置
        updateFormatUI();
    }

    /**
     * DOCUMENT ME!
     *
     * @param argv DOCUMENT ME!
     */
    public static void main(String[] argv) {
        // 改变菜单栏ICON,因为缺省的ICON总是使菜单文字参次不齐
        UIManager.put("CheckBoxMenuItem.checkIcon", new ToggleIcon());
        UIManager.put("RadioButtonMenuItem.checkIcon", new ToggleIcon());
        UIManager.put("ToggleButton.select", new Color(234, 233, 230));

        try {
            // 如果是windows平台,就用windows 风格的外观吧
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } catch (UnsupportedLookAndFeelException ex) {
        } catch (IllegalAccessException ex) {
        } catch (InstantiationException ex) {
        } catch (ClassNotFoundException ex) {
        }

        new EZCellDemo();
    }

    /**
     * DOCUMENT ME!
     *
     * @param cellBean DOCUMENT ME!
     */
    public void undoStateChanged(EZCell cellBean) {
        // 改变undo ,redo 的
        updateUndoUI();
    }

    /**
     * DOCUMENT ME!
     *
     * @param cellBean DOCUMENT ME!
     */
    public void viewStateChanged(EZCell cellBean) {
        updateViewUI();
    }

    /**
     * DOCUMENT ME!
     *
     * @param k DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    KeyStroke ctrl(int k) {
        return KeyStroke.getKeyStroke(k, KeyEvent.CTRL_MASK);
    }

    /**
     * DOCUMENT ME!
     *
     * @param k DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    KeyStroke key(int k) {
        return KeyStroke.getKeyStroke(k, 0);
    }

    /**
     * DOCUMENT ME!
     */
    void onViewOption() {
    }

    /**
     * DOCUMENT ME!
     */
    void onViewZoomIn() {
        JComboBox scales = (JComboBox) ahs[VIEW_ZOOM_TO].getValue("BUTTON");
        int index = scales.getSelectedIndex() - 1;

        if (index >= 0) {
            scales.setSelectedIndex(index);
        }
    }

    /**
     * DOCUMENT ME!
     */
    void onViewZoomOut() {
        JComboBox scales = (JComboBox) ahs[VIEW_ZOOM_TO].getValue("BUTTON");
        int index = scales.getSelectedIndex() + 1;

        if (index < scales.getItemCount()) {
            scales.setSelectedIndex(index);
        }
    }

    /**

⌨️ 快捷键说明

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