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

📄 guitable.java

📁 java实现的税务计算器程序。中英文操作界面
💻 JAVA
字号:
//本类是打印报表类,实例化本类的对象则产生一个报表打印窗口;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class GUITable extends JFrame{
public GUITable(){}
public GUITable(int language){
		  super((language==0)?"Table Look And Edit Application" :"税务报表查看编辑器");
		  language=language;
	      setSize( 900, 350 );
	      cont = getContentPane();
	      initControls();
	      initTable();
	      show();
	}
	//对窗口上的各种按钮初始化
public void initControls(){
	JButton b;
    JPanel controls = new JPanel();
    controls.setLayout( new FlowLayout() );
    b = addButton( controls, readString[language] );
    b.addActionListener( new ActionListener() {
       public void actionPerformed( ActionEvent e ) {
		       JFileChooser fc = new JFileChooser();
		       int choice = fc.showOpenDialog( new JFrame() );
		       if ( choice == JFileChooser.APPROVE_OPTION )
		         infileName = fc.getSelectedFile().getName();
		       else
               return; //*** user hit CANCEL button
		       read(); }
    } );
    b = addButton( controls, writeString[language] );
    b.addActionListener( new ActionListener() {
       public void actionPerformed( ActionEvent e ) { write(); }
    } );
    b = addButton( controls, exitString[language] );
    b.addActionListener( new ActionListener() {
       public void actionPerformed( ActionEvent e ) {
          System.exit( 0 ); }
    } );
    cont.add( controls, BorderLayout.NORTH );
}
//报表,则自然用到表,下面就是初始化表的代码了
public void initTable(){
	String[ ] cols = { "MIN" ,"MAX", "TAXRATE" };
	dm = new DefaultTableModel( cols,0);
	table = new JTable( dm );
	table.getTableHeader().setFont( new Font( "Dialog",
	                                Font.BOLD, 12 ) );
	cont.add( new JScrollPane( table ), BorderLayout.CENTER );
	read();
}
private JButton addButton( JPanel p, String name ) {
    JButton b = new JButton( name );
    b.setFont( new Font( "Dialog", Font.BOLD, 14 ) );
    p.add( b );
    return b;
}
//报表的数据从何而来,从文件而来,下面就是读文件的函数
//同时这里就是printandmodify类中调用的read函数了,不过他还不是最底层的代码哦
private void read() {
    clearRows();
    Emp t=null;
    String []rowNum;
    /*JFileChooser fc = new JFileChooser();
    int choice = fc.showOpenDialog( new JFrame() );
    if ( choice == JFileChooser.APPROVE_OPTION )
      infileName = fc.getSelectedFile().getName();
    else
      return; //*** user hit CANCEL button*/
    String outfileName = "out for"+infileName;
    printAndModify = new PrintAndModify( infileName, outfileName );
    printAndModify.read();
    Enumeration e = printAndModify.getEmps().elements();
   // dm.addRow((Emp)e.getFieldValues());
    while ( e.hasMoreElements() ) {
        t = (Emp) e.nextElement();
        rowNum=new String[3];
        rowNum[0]=t.fields[0];
        rowNum[1]=t.fields[2];
        rowNum[2]=t.fields[3];
       dm.addRow( rowNum ); //*** polymorphic
    }
   /* for (Enumeration e = printAndModify.getEmps().elements() ; e.hasMoreElements() ;) {
	   t = (Emp)e.nextElement();;
       dm.addRow( t.getFieldValues() );
	}*/

}
 //** Use an EmpRW object to write records from the JTable
 //   to a specified file.
 //这里就是printandmodify类中调用的write函数了,将修改后数据存入文件
 private void write() {
    Enumeration e = dm.getDataVector().elements();
    Vector records = new Vector();
    while ( e.hasMoreElements() ) {
       Vector fields = (Vector) e.nextElement();
       String t = "";
       Enumeration e2 = fields.elements();
       while ( e2.hasMoreElements() ) {
          String s = (String) e2.nextElement();
   //       if ( !s.equals( Emp.NotApplicable ) )
            t += s + " ";
       }
       records.addElement( t );
    }
    printAndModify.writeRecords( records );
 }

 //** Clear the JTable's rows before a read.
 private void clearRows() {
    int n = dm.getRowCount();
    for ( int i = dm.getRowCount() - 1; i >= 0; i-- )
       dm.removeRow( i );
 }
 //*** instance fields
 private Container cont;
 private JTable table;
 private DefaultTableModel dm;
 private PrintAndModify  printAndModify;
 private String infileName="input.dat";
 private String outfileName;
 //*** class fields
 private static final String []readString  ={ " Read File ","读取文件"};;
 private static final String []writeString = {" Save File ","保存"};
 private static final String []exitString  = {" Exit ","退出"};
 private int language=0;
}

⌨️ 快捷键说明

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