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

📄 ezcell.java

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

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Component;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.print.PageFormat;

import java.net.URL;

import java.sql.*;

import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;


/**
 * EZCell JavaBean
 */
public class EZCell extends JPanel implements ChangeListener, ZBookStateListener,
                                              ZUndoManagerListener {
    // modal
    private ZBookState bookState;

    // view
    private ZBookView bookView;
    private ZPrintPreview printPreview;

    // user interface option
    private ZDefaultUI ui;
    private CardLayout layout = new CardLayout();

    //listener
    private Vector listeners = new Vector();

    /**
     * 构造函敉
     */
    public EZCell() {
        jbInit();
    }

    /**
     * 设置指定的工作表为当前表
     * @param active 新的当前表
     */
    public void setActive(ZSheet active) {
        bookState.setActive(active);
    }

    /**
     * 取得当前表的焦点单元格
     * @return 当前焦点单元格
     */
    public ZCell getActiveCell() {
        return bookState.getActive().getFocusCell();
    }

    /**
     * 取得当前表
     * @return 当前表
     */
    public ZSheet getActiveSheet() {
        return bookState.getActive().getSheet();
    }

    /**
     * 设定工作薄
     * @param book 新的工作薄
     */
    public void setBook(ZDefaultBook book) {
        if (bookState.getBook() == book) {
            return;
        }

        bookState.setBook(book);

        if (printPreview != null) {
            layout.removeLayoutComponent(printPreview);
        }

        printPreview = null;
        ZCmdFormat.undoManager.discardAllEdits();
    }

    /**
     * 取得工作薄
     * @return 当臆工作薄
     */
    public ZBook getBook() {
        return bookState.getBook();
    }

    /**
     * 取得工作薄的文件名
     * @return 文件名
     */
    public String getFileName() {
        return bookState.getBook().getFileName();
    }

    /**
     * 设定水平格子线是否可见
     * @param visible 可见/不可见(true/false)
     */
    public void setGridXVisible(boolean visible) {
        for (int i = 0; i < bookState.getCount(); i++)
            bookState.getSheetState(i)
                     .put(ZDefaultUI.GRID_X_VISIBLE, new Boolean(visible));
    }

    /**
     * 设定垂直格子线是否可见
     * @param visible 可见/不可见(true/false)
     */
    public void setGridYVisible(boolean visible) {
        for (int i = 0; i < bookState.getCount(); i++)
            bookState.getSheetState(i)
                     .put(ZDefaultUI.GRID_Y_VISIBLE, new Boolean(visible));
    }

    /**
     * 设置行头是否可见
     *
     * @param visible 可见/不可见(true/false)
     */
    public void setLeftHeaderVisible(boolean visible) {
        for (int i = 0; i < bookState.getCount(); i++)
            bookState.getSheetState(i)
                     .put(ZDefaultUI.LEFT_HEAD_VISIBLE, new Boolean(visible));
    }

    /**
     * 当前工作薄是否已被修改,可用于提示"是否保存?"
     * @return 被改/未改 (true/false))
     */
    public boolean isModified() {
        return bookState.getBook().isModified();
    }

    /**
     * 查询是否正在编辑页脚页眉
     * @return 正在编辑/不在编辑(true/false)
     */
    public boolean isPageViewing() {
        return !bookView.isVisible();
    }

    /**
     * 查询当前视图的缩放比例
     * @return 缩放比例
     */
    public float getScale() {
        return bookState.getActive().getScale();
    }

    /**
     * 设置滚动条是否可见
     * @param visible 可见/不可见(true/false)
     */
    public void setScrollbarVisible(boolean visible) {
        if (bookView != null) {
            bookView.setScrollbarVisible(visible);
        }
    }

    /**
     * 设定选定单元格的背景刷
     * @param sheet 指定工作表
     * @param rect 指定被选单元格
     * @param value 指定刷子对象
     * @exception Exception 如果指定单元格与合并单元格相交,则不支持
     */
    public void setSelectionBackBrush(ZSheet sheet, ZRect rect, ZBrush value)
                               throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionBackBrush(rect, value);
    }

    /**
     * 指定被选单元格的边框属性
     * @param sheet 指定工作表
     * @param rect 被选单元格
     * @param pens 指定边框线属性
     * @exception Exception 如果指定单元格与合并单元格相交,或行选,或列选均不支持
     */
    public void setSelectionBorders(ZSheet sheet, ZRect rect, ZPen[] pens)
                             throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionBorders(rect, pens);
    }

    /**
     * 指定被选单元格的字体
     * @param sheet 选定工作表
     * @param rect 被选单元格
     * @param font 字体属性
     * @exception Exception 如果被选单元格与合并单元格相交,则不支持
     */
    public void setSelectionFont(ZSheet sheet, ZRect rect, ZFont font)
                          throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionFont(rect, font);
    }

    /**
     * 指定被选单元格的字体加粗
     * @param sheet 选定工作表
     * @param rect 被选单元格
     * @param fontBold 加粗/取消加粗(true/false)
     * @exception Exception 如果被选单元格与合并单元格相交,则不支持
     */
    public void setSelectionFontBold(ZSheet sheet, ZRect rect, boolean fontBold)
                              throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionFontBold(rect, fontBold);
    }

    /**
     * 设定被选元格是否斜体
     * @param sheet 指定工作表
     * @param rect 被选单元格
     * @param fontItalic 斜/不斜(true/false)
     * @exception Exception 如果被选单元格与合并单元格相交,则不支持
     */
    public void setSelectionFontItalic(ZSheet sheet, ZRect rect, boolean fontItalic)
                                throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionFontItalic(rect, fontItalic);
    }

    /**
     * 设置被选单元格的字型
     * @param sheet 指定工作表
     * @param rect 被选单元格
     * @param fontName 字型
     * @exception Exception 如果被选单元格与合并单元格相交,则不支持
     */
    public void setSelectionFontName(ZSheet sheet, ZRect rect, String fontName)
                              throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionFontName(rect, fontName);
    }

    /**
     * 指定被选单元格是否为空心字
     * @param sheet 指定单元格
     * @param rect 被选单元格
     * @param fontOutline 空心/不空心(true/false)
     * @exception Exception 如果被选单元格与合并单元格相交,则不支持
     */
    public void setSelectionFontOutline(ZSheet sheet, ZRect rect, boolean fontOutline)
                                 throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionFontOutline(rect, fontOutline);
    }

    /**
     * 指定被选单元格的字体大小
     * @param sheet 指定工作表
     * @param rect 被选单元格
     * @param fontSize 字体大小
     * @exception Exception 如果被选单元格与合并单元格相交,则不支持
     */
    public void setSelectionFontSize(ZSheet sheet, ZRect rect, int fontSize)
                              throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionFontSize(rect, fontSize);
    }

    /**
     * 指定被选单元格的数字显示格式
     * @param sheet 指定工作表
     * @param rect 指定单元格
     * @param format 数字格式
     * @exception Exception 如果被选单元格与合并单元格相交,则不支持
     */
    public void setSelectionFormat(ZSheet sheet, ZRect rect, String format)
                            throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionFormat(rect, format);
    }

    /**
     * 指定被选行的行高
     * @param sheet 指定工作表
     * @param rect 指定行
     * @param height 新的行高
     * @exception Exception 如果被选单元格与合并单元格相交,或不是行选则不支持
     */
    public void setSelectionHeight(ZSheet sheet, ZRect rect, int height)
                            throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionHeight(rect, height);
    }

    /**
     * 指定被选单元格的水平对齐属性
     * @param sheet 指定工作表
     * @param rect 被选单元格
     * @param value 对齐属性值
     * @exception Exception 如果被选单元格与合并单元格相交,则不支持
     */
    public void setSelectionHorzAlign(ZSheet sheet, ZRect rect, int value)
                               throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionHorzAlign(rect, value);
    }

    /**
     * 设定被选单元格是否只读
     * @param sheet 指定工作表
     * @param rect 被选单元格
     * @param value 只读/可读写(true/false)
     * @exception Exception 如果被选单元格与合并单元格相交,则不支持
     */
    public void setSelectionReadOnly(ZSheet sheet, ZRect rect, boolean value)
                              throws Exception {
        if (sheet == null) {
            sheet = getActiveSheet();
        }

        if (rect == null) {
            rect = bookState.getActive().getSelection();
        }

        sheet.setSelectionReadOnly(rect, value);
    }

    /**

⌨️ 快捷键说明

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