首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求教各位,怎么把小弟我的这个计算器程序的计算结果用流输出到指定文件夹下的TXT文档

2012-01-21 
求教各位,如何把我的这个计算器程序的计算结果用流输出到指定文件夹下的TXT文档import java.awt.*import

求教各位,如何把我的这个计算器程序的计算结果用流输出到指定文件夹下的TXT文档
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Calculator extends JFrame {

 private Container container;
 private GridBagLayout layout;
 private GridBagConstraints constraints; 
 private JTextField displayField;//计算结果显示区
 private String lastCommand;//保存+,-,*,/,=命令
 private double result;//保存计算结果
 private boolean start;//判断是否为数字的开始

 public Calculator() {

  super("Calculator");
  container=getContentPane();
  layout=new GridBagLayout();
  container.setLayout(layout);
  constraints=new GridBagConstraints();
  start=true;
  result=0;
  lastCommand = "=";
  displayField=new JTextField(20);
  displayField.setHorizontalAlignment(JTextField.RIGHT);
  constraints.gridx=0;
  constraints.gridy=0;
  constraints.gridwidth=4;
  constraints.gridheight=1;
  constraints.fill=GridBagConstraints.BOTH;
  constraints.weightx=100;
  constraints.weighty=100;
  layout.setConstraints(displayField,constraints);
  container.add(displayField);
  ActionListener insert = new InsertAction();
  ActionListener command = new CommandAction();
  addButton("Backspace",0,1,2,1,insert);
  addButton("CE",2,1,1,1,insert);
  addButton("C",3,1,1,1,insert);
  addButton("7",0,2,1,1,insert);
  addButton("8",1,2,1,1,insert);
  addButton("9",2,2,1,1,insert);
  addButton("/",3,2,1,1,command);
  addButton("4",0,3,1,1,insert);
  addButton("5",1,3,1,1,insert);
  addButton("6",2,3,1,1,insert);
  addButton("*",3,3,1,1,command);
  addButton("1",0,4,1,1,insert);
  addButton("2",1,4,1,1,insert);
  addButton("3",2,4,1,1,insert);
  addButton("-",3,4,1,1,command);
  addButton("0",0,5,1,1,insert);
  addButton("+/-",1,5,1,1,insert);//只显示"-"号,"+"没有实用价值
  addButton(".",2,5,1,1,insert);
  addButton("+",3,5,1,1,command);
  addButton("=",0,6,4,1,command);
  setSize(300,300);
  setVisible(true);
  
 }


 private void addButton(String label,int row,int column,int with,int height,ActionListener listener) {

  JButton button=new JButton(label);
  constraints.gridx=row;
  constraints.gridy=column;
  constraints.gridwidth=with;
  constraints.gridheight=height;
  constraints.fill=GridBagConstraints.BOTH;
  button.addActionListener(listener);
  layout.setConstraints(button,constraints);
  container.add(button);
 }


 private class InsertAction implements ActionListener {

  public void actionPerformed(ActionEvent event) {

  String input=event.getActionCommand();
  if (start) {
  displayField.setText("");
  start=false;
  if(input.equals("+/-"))
  displayField.setText(displayField.getText()+"-"); 
  }
 
  if(!input.equals("+/-")) {
  if(input.equals("Backspace")) {
  String str=displayField.getText();
  if(str.length()>0)
  displayField.setText(str.substring(0,str.length()-1));
  }else if(input.equals("CE")||input.equals("C")) {
  displayField.setText("0");


  start=true;
  }else
  displayField.setText(displayField.getText()+input);
  }
  }
 }


 private class CommandAction implements ActionListener {

  public void actionPerformed(ActionEvent evt) {
  String command=evt.getActionCommand();
  if(start) {
  lastCommand=command;
  }else {
  calculate(Double.parseDouble(displayField.getText()));
  lastCommand=command;
  start=true;
  }
  }
 }

 public void calculate(double x) {
  if (lastCommand.equals("+")) result+= x;  
  else if (lastCommand.equals("-")) result-=x;
  else if (lastCommand.equals("*")) result*=x;  
  else if (lastCommand.equals("/")) result/=x;
  else if (lastCommand.equals("=")) result=x;
  displayField.setText(""+ result);
 }
 

 public static void main(String []args) {
  Calculator calculator=new Calculator();
  calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }

}

在输出的txt文档中有可以记录时间的功能,谢谢各位了,我是新手……






[解决办法]
这个 里面有文件位置d:/calcute.txt 当然你可以设置成相对路径..

探讨

public void actionPerformed(ActionEvent evt) {
String command = evt.getActionCommand();
if (start) {
lastCommand = command;
} else {
calculate(Double.parseDouble(displayField.getText()));
lastC……

热点排行