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

📄 mainframe.java

📁 提醒簿采用java语言和xml数据库结合开发.通过读写xml文件动态写入读取备忘录.,通过线程机制及时提醒您.提供多种提醒方式.操作方便,使用简单.是个很不错的提醒簿. 运行平台: Windows
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        }else{
            int choose = JOptionPane.showConfirmDialog(null,
                    "确认删除编号为 ' " + selectID + " ' 的记录吗?\n 删除后不可恢复!",
                    "删除提示: ^_^ 请选择一个选项",
                    JOptionPane.YES_NO_OPTION);
            if (choose == 0) {
                xmlConn xml = new xmlConn("Not_Forget", 9);
                Object[][] allData = xml.getData();
                if (this.xmlUpdate.delData(allData, selectID)) {
                    this.showAllList();
                    JOptionPane.showMessageDialog(null, " ^_^ 操作成功!");
                }else{
                    JOptionPane.showMessageDialog(null, "抱歉,删除失败!");
                }
            }
        }
    }


    /**
     * 过滤
     * @param e ActionEvent
     */
    public void jButton6_actionPerformed(ActionEvent e) {
        String selectID = this.list_all.getSelectID();
        if (selectID.equals("")) {
            JOptionPane.showMessageDialog(null, "抱歉,操作失败!\n 请先选择要过滤的记录!");
        } else {
            int choose = JOptionPane.showConfirmDialog(null,
                    "确认将编号为 ' " + selectID + " ' 的备忘录过滤吗?",
                    "过滤提示: ^_^ 请选择一个选项",
                    JOptionPane.YES_NO_OPTION);
            if (choose == 0) {
                xmlConn xml = new xmlConn("Not_Forget", 9);
                Object[][] allData = xml.getData();
                if (this.xmlUpdate.filtrateMemoire(allData, selectID)) {
                    this.showAllList();
                    JOptionPane.showMessageDialog(null, " ^_^ 操作成功!");
                } else {
                    JOptionPane.showMessageDialog(null, "抱歉,操作失败!");
                }
            }
        }
    }

    /**
     * 修改记录
     * @param e ActionEvent
     */
    public void jButton4_actionPerformed(ActionEvent e) {
        try{
            Edit_Memoire editMemoire = new Edit_Memoire();
            editMemoire.setTitle("勿忘软件 -- 编辑备忘录 -- ^_^");
            editMemoire.setSize(500, 300);
            editMemoire.setEditValue(this.getAllEditMessage());
            //将frame传给Edit_Memoire,供操作完成后使用.
            editMemoire.setMainFrame(this);
            editMemoire.setLocationRelativeTo(null);
            editMemoire.setVisible(true);
        }catch(Exception e3){
            JOptionPane.showMessageDialog(null,"抱歉,操作失败!\n 请选择要操作的记录进行编辑!");
            //this.showAllList();
        }
    }

     //返回当前选中的id对应的所有信息.
    public Object[] getAllEditMessage(){
        xmlConn xml = new xmlConn("Not_Forget", 9);
        String selectID = this.list_all.getSelectID();
        //获取所有备忘录信息.
        Object[][] memoireData = xml.getData();
        //用来存储单个id对应的所有信息.
        Object[] allEidtMessage = new Object[9];
            /**
             * 将id相同的行所有信息取出.
             */
            for (int i = 0; i < memoireData.length; i++) {
                String thisID = memoireData[i][0].toString().trim();
                if (thisID.equals(selectID)) {
                    for (int j = 0; j < memoireData[i].length; j++) {
                        allEidtMessage[j] = memoireData[i][j];
                    }
                }
            }
        return allEidtMessage;
    }

    //供其它窗体使用.
    public Object getMainFrame(){
        return this;
    }


    /**
     * 设置面板
     * @param e ActionEvent
     */
    public void jButton7_actionPerformed(ActionEvent e) {
        /*
          Memoire_Setting memoire_setting = new Memoire_Setting();
          memoire_setting.setLocation(300, 200);
          memoire_setting.setSize(400, 300);
          memoire_setting.setVisible(true);
         */
    }

    /**
     * 提醒方法
     * @param args String[]
     */
    //弹出消息
    public void showMessageDialog(String Message){
        JOptionPane.showMessageDialog(null,Message);
    }

    //窗口闪烁
    public void showFrameFlash(){

    }
    //弹出窗口.
    public void showFrame(){
            ShowFrame showFrame = new ShowFrame();
            //设置显示内容
            showFrame.setFrameTitle("提醒窗口: 第" + this.awokeData[0].toString() +
                                    "条备忘录");
            showFrame.setMemoireTitle(this.awokeData[1].toString());
            showFrame.setMemoireContent("         " +
                                        this.awokeData[2].toString());
            //提供主面板,使其调用内部方法.
            showFrame.setMainFrame(this);
            //设置id
            showFrame.setEditID(this.awokeData[0].toString());
            //设置所有数据.
            showFrame.setAllData(this.Data);
            //设置更改的数据.
            showFrame.setEditValue(this.awokeData);
            showFrame.setSize(400, 250);
            showFrame.setLocationRelativeTo(null);
            showFrame.setVisible(true);
    }
    /**
     * 把所有的数据返回.
     * @return Object[][]
     */
    public Object[][] getAllData(){
        return this.Data;
    }
    /**
     * 返回编辑的数据
     * @return Object[]
     */
    public Object[] getThisMemoireData(){
        return this.awokeData;
    }




    //播放声音
    public void playSound(){

    }


    /**
     *得到与当前相比较的数据.
     * @return Object[][]
     */
    public void setCompareData() {
        if(this.isNewMemoire){
            //如果新建了数据,则更改记录.
            xmlConn getValue = new xmlConn("Not_Forget",9);
            this.Data = getValue.getData();
            this.getTodayData(this.Data);
            this.list_all = new List_All();
            this.isNewMemoire = false;
        }
    }

    public Object[][] getCompareData(){
        return this.compareDate;
    }

    /**
     * 获取今日的数据.
     * @return Object[][]
     */
    public void getTodayData(Object[][] allData) {
        //获取今日有用的的提醒.
        int allDataRowCount = this.Data.length;
        int compareRowCount = 0;
        int memoireRow = 0;
        java.util.Date utildate = new java.util.Date();
        String systemDate = utildate.toString().substring(0, 10).trim();
        //计算今天要提醒的行数.
        for (int i = 0; i < this.Data.length; i++) {
            String getDate = this.Data[i][4].toString().substring(0,10);
            String isYouxiao = this.Data[i][7].toString();
            if(getDate.equals(systemDate)&& isYouxiao.equals("1")){
                compareRowCount++;
            }
        }
        this.todayRow = compareRowCount;
        //得到行后给compareData分配内存.
        Object[][] Memoire = new Object[compareRowCount][9];
        for (int i = 0; i < this.Data.length; i++) {
            String getDate = this.Data[i][4].toString().substring(0, 10);
            String isYouxiao = this.Data[i][7].toString();
            //System.out.println(this.Data[i][0]+"getDate :" + getDate + "  isYouxiao:" + isYouxiao);
            if (getDate.equals(systemDate) && isYouxiao.equals("1")) {
                for (int j = 0; j < 9; j++) {
                    Memoire[memoireRow][j] = this.Data[i][j];
                }//else后可计算过期提醒.
                memoireRow++;
            }
        }
        this.compareDate = Memoire;
    }




    /**
     * 获取过期数据.
     * @return Object[][]
     */
    public Object[][] getOverdueData() {
        //获取过期提醒.
        int allDataRowCount = this.Data.length;
        int overdueRowCount = 0;
        int memoireRow = 0;
        //计算过期提醒的行数.
        for (int i = 0; i < this.Data.length; i++) {
            String auditing = this.Data[i][8].toString();
            String isYouxiao = this.Data[i][7].toString();
            if(auditing.equals("0")&& isYouxiao.equals("0")){
                overdueRowCount++;
            }
        }
        //得到行后给OverdueData分配内存.
        Object[][] OverdueData = new Object[overdueRowCount][9];
        for (int i = 0; i < this.Data.length; i++) {
            String getDate = this.Data[i][8].toString();
            String isYouxiao = this.Data[i][7].toString();
            if (getDate.equals("0") && isYouxiao.equals("0")) {
                for (int j = 0; j < 9; j++) {
                    OverdueData[memoireRow][j] = this.Data[i][j];
                }
                memoireRow++;
            }
        }
        return OverdueData;
    }



        public Object[] getEditValue(){
            Object[] editingMemoire = new Object[9];
            for (int i = 0; i < editingMemoire.length; i++) {
                if (i == 8 || i == 7) {
                    editingMemoire[i] = 0;
                } else {
                    editingMemoire[i] = this.awokeData[i];
                }
            }
            return editingMemoire;
    }

    /**
     * 提醒操作.
     * @param awokeModel String
     */
    public void setAwokeMode(String awokeModel) {
        if (awokeModel.equals("默认提醒")) {
            this.showMessageDialog(this.awokeData[2].toString());
        } else if (awokeModel.equals("弹出窗口")) {
            this.showFrame();
        } else if (awokeModel.equals("闪烁提醒")) {
            this.showFrameFlash();
        } else if (awokeModel.equals("播放声音")) {
            this.playSound();
        }else{
            this.showMessageDialog(this.awokeData[2].toString());
        }
    }
    /**
     * 当前时间与数组时间相比较.
     */
    public void compareTime() {
        java.util.Date utildate = new java.util.Date();
        String nowTime = utildate.toString().substring(11, 16).trim();
        for (int i = 0; i < this.compareDate.length; i++) {
            String getTime = this.compareDate[i][4].toString().substring(11, 16).
                             trim();
            String awokeModel = this.compareDate[i][5].toString();
            if (nowTime.compareTo(getTime) <= 0) {
                if (nowTime.equals(getTime)) {
                    //提醒.
                    for (int j = 0; j < this.compareDate[i].length; j++) {
                        this.awokeData[j] = this.compareDate[i][j];
                    }
                    //执行提醒方法.
                    this.setAwokeMode(awokeModel);
                    XmlUpdate update = new XmlUpdate();
                    update.updateData(this.getEditValue(), this.Data,this.awokeData[0].toString());
                    //告知主窗体已经有数据更改.
                    this.setisNewMemoire();

                }
            }
        }
    }

    //线程run方法实现
    public void run() {
        while(true){
            //获取比较的数据.
            this.setCompareData();
            //与当前时间相比较
            this.compareTime();
            try {
                Thread.currentThread().sleep(1000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }


    public static void main(String[] args) {
        mainFrame mainframe = new mainFrame();
        mainframe.setLocation(300, 200);
        mainframe.setSize(500, 400);
        mainframe.setVisible(true);
        Thread notForget = new Thread(mainframe,"Not_Forget");
        notForget.start();

    }

}


⌨️ 快捷键说明

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