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

📄 outgorecordtable.java

📁 个人财务管理的程序 很实用的
💻 JAVA
字号:
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.table.*;

//**********************************************************
//这是一个建立“支出记录”的类
//**********************************************************
class OutgoRecordTable extends JFrame {
   public OutgoRecordTable() {

      setSize(500,490);
      setResizable(false);
      setLocation(150,50);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            dispose();
         }
      });

      getContentPane().setLayout(new FlowLayout());

      //将table1加入到JScrollPane
      getContentPane().add(new JScrollPane(table1));
      button1.addActionListener(new ActionLis(1));
      button2.addActionListener(new ActionLis(2));
      getContentPane().add(button1);
      getContentPane().add(button2);
   }   

   String[] field={"日期","名称","数量(元)","备注"};

   //设定表格的字段
   Object[][] data={/**{"2002-2-16",
      new String("购买此软件"),
      new Double(3650),new String
      ("用来管理财务")}*/};

   int delrow;

   boolean can_del=true;

   //该方法用来增加一笔记录
   public void addRecord(String date,String name,double amount,
      String explanation) {
      Object newdata[]={date,name,
         new Double(amount),explanation};
      tmodel.addRow(newdata);    
   }


   //该方法用来删除所选的一笔记录
   public void delSelectedRecord() {
      delrow=table1.getSelectedRow();
      tmodel.removeRow(delrow);     
   }

   //设定数据
   DefaultTableModel tmodel=new DefaultTableModel(data,field);

   //建立表格格式为DefaultTableModel
   JTable table1=new JTable(tmodel);
   JButton button1=new JButton("添加");
   JButton button2=new JButton("删除");

   class ActionLis implements ActionListener {
      int select;
      public ActionLis(int select) {
         this.select=select;
      }

      public void actionPerformed(ActionEvent evt) {
         if(select==1) {
            String date=JOptionPane.showInputDialog
               ("请输入(按照格式:2002-4-10)日期:");
            String name=JOptionPane.showInputDialog
               ("请输入这笔支出的名称:");
            double amount=Double.parseDouble(JOptionPane.showInputDialog
               ("请输入这笔支出的数量:"));
            String explanation=JOptionPane.showInputDialog
               ("请输入有关这笔支出的备注:");
            addRecord(date,name,amount,explanation);
            can_del=false;

            One_record[] record;
            //***************** 以下是提取文件操作 ******************************
            try {
               //读原来的文件
               RandomAccessFile in=new
                  RandomAccessFile("records_o.dat","rw");
               int n=(int)(in.length()/One_record.RECORD_SIZE);
               record=new One_record[n];

               for(int i=n-1;i>=0;i--) {
                  record[i]=new One_record();
                  in.seek(i*One_record.RECORD_SIZE);
                  record[i].readData(in);
               }
               //保存原有的和现在的
               One_record oner=new One_record(date,name,amount,explanation);
               DataOutputStream out=new DataOutputStream(new
                  FileOutputStream("records_o.dat"));
               for(int i=0;i<record.length;i++) 
                  record[i].writeData(out);
               oner.writeData(out);        
               out.close();
            }
            catch(IOException ioe) {
               System.out.print("Error: "+ioe);
               System.exit(1);
            }
            //****************** 结束保存输入的操作 ********************************
         }

         else if(select==2) {

            if(can_del) {
               delSelectedRecord();
               One_record[] record;
  
               //***************** 以下是提取文件操作 ******************************
               try {
                  //读原来的文件
                  RandomAccessFile in=new
                     RandomAccessFile("records_o.dat","rw");
                  int n=(int)(in.length()/One_record.RECORD_SIZE);
                  record=new One_record[n];
  
                  for(int i=n-1;i>=0;i--) {
                     record[i]=new One_record();
                     in.seek(i*One_record.RECORD_SIZE);
                     record[i].readData(in);
                  }

                  //保存删除以后的
                  DataOutputStream out=new DataOutputStream(new
                     FileOutputStream("records_o.dat"));
  
                  for(int i=0;i<record.length-delrow-1;i++) 
                     record[i].writeData(out);
                  for(int j=record.length-delrow;j<record.length;j++) 
                     record[j].writeData(out);
                  out.close();
               }
               catch(IOException ioe) {
                  System.out.print("Error: "+ioe);
                  System.exit(1);
               }
               //****************** 结束保存删除的操作 ********************************
            }
            else {
               JOptionPane.showMessageDialog(table1,
                  "Sorry!……刚添加就想删除,不行!\n如果实在想删除,请重启本窗口!");
            }
         }
      }
   }
}

⌨️ 快捷键说明

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