学海舟舟_林 2017-08-23 11:30 采纳率: 0%
浏览 909

急急急~~~Java从文本框读取数据并写入文件,为什么str[i]都没有数据,怎么改。。。

package UI;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;

import javax.swing.*;

//录入个人信息界面
public class PersonUI extends JFrame{
String []str=new String[13];
public void personUI(){
PersonUI personfr=new PersonUI();
personfr.setTitle("医疗中心管理系统");
personfr.setLayout(new BorderLayout(5,5));
personfr.setSize(1000,300);
personfr.setBackground(Color.white);
personfr.setLocationRelativeTo(getParent());
personfr.setVisible(true);

    JLabel lb1=new JLabel("个人信息录入",JLabel.CENTER);
    lb1.setFont(new java.awt.Font("仿宋",1,30));
    personfr.add(lb1,BorderLayout.NORTH);

    JPanel pn2=new JPanel();
    pn2.setLayout(new GridLayout(7,2));


    JLabel lb2=new JLabel("姓名",JLabel.CENTER);
    lb2.setFont(new java.awt.Font("仿宋",1,15));
    pn2.add(lb2);
    JTextField field1=new JTextField(10);
    pn2.add(field1);

    JLabel lb3=new JLabel("个人编号",JLabel.CENTER);
    lb3.setFont(new java.awt.Font("仿宋",1,15));
    pn2.add(lb3);
    JTextField field2=new JTextField(10);
    pn2.add(field2);

    JLabel lb4=new JLabel("人员类别",JLabel.CENTER);
    lb4.setFont(new java.awt.Font("仿宋",1,15));
    pn2.add(lb4);
    JTextField field3=new JTextField(10);
    pn2.add(field3);

    JLabel lb5=new JLabel("报销类别",JLabel.CENTER);
    lb5.setFont(new java.awt.Font("仿宋",1,15));
    pn2.add(lb5);
    JTextField field4=new JTextField(10);
    pn2.add(field4);

    JLabel lb6=new JLabel("住院次数",JLabel.CENTER);
    lb6.setFont(new java.awt.Font("仿宋",1,15));
    pn2.add(lb6);
    JTextField field5=new JTextField(10);
    pn2.add(field5);

    JLabel lb7=new JLabel("就诊医院",JLabel.CENTER);
    lb7.setFont(new java.awt.Font("仿宋",1,15));
    pn2.add(lb7);
    JTextField field6=new JTextField(10);
    pn2.add(field6);

    JLabel lb8=new JLabel("就诊时段",JLabel.CENTER);
    lb8.setFont(new java.awt.Font("仿宋",1,15));
    pn2.add(lb8);

    JPanel pn1=new JPanel();
    pn1.setVisible(true);
    pn2.add(pn1);

    JTextField field7=new JTextField(4);
    pn1.add(field7);
    JTextField field8=new JTextField("年");
    pn1.add(field8);
    JTextField field9=new JTextField(2);
    pn1.add(field9);
    JTextField field10=new JTextField("月");
    pn1.add(field10);
    JTextField field11=new JTextField(2);
    pn1.add(field11);
    JTextField field12=new JTextField("日");
    pn1.add(field12);
    JTextField field13=new JTextField("  至   ");
    pn1.add(field13);
    JTextField field14=new JTextField(4);
    pn1.add(field14);
    JTextField field15=new JTextField("年");
    pn1.add(field15);
    JTextField field16=new JTextField(2);
    pn1.add(field16);
    JTextField field17=new JTextField("月");
    pn1.add(field17);
    JTextField field18=new JTextField(2);
    pn1.add(field18);
    JTextField field19=new JTextField("日");
    pn1.add(field19);

    pn2.setVisible(true);
    personfr.add(pn2,BorderLayout.CENTER);


    JPanel pn3=new JPanel();
    pn3.setLayout(new FlowLayout(1,20,4));
    JButton bn7=new JButton("确定");
    JButton bn8=new JButton("上一步");
    bn7.setSize(30,15);
    bn8.setSize(30,15);
    pn3.add(bn8);
    pn3.add(bn7);
    pn3.setVisible(true);
    personfr.add(pn3,BorderLayout.SOUTH);

    //监听器
    bn7.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            save();
            personfr.dispose();
        }                  //保存信息
    });

    bn8.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            personfr.dispose();
            BaseFunction basefunction=new BaseFunction();
            basefunction.basefunction();
        }                  
    });

    str[0]=field1.getText();
    System.out.println(str[0]);
    str[1]=field2.getText();
    str[2]=field3.getText();
    str[3]=field4.getText();
    str[4]=field5.getText();
    str[5]=field6.getText();
    str[7]=field7.getText();
    str[8]=field9.getText();
    str[9]=field11.getText();
    str[10]=field14.getText();
    str[11]=field16.getText();
    str[12]=field18.getText();


}
public void save(){
    File personfile=new File("E:\\person.txt");
    if(personfile.exists()&&personfile.isFile()){
           //使用现有的文件
    }
    else
    {
        try{
            //创建文件
            personfile.createNewFile();
        }
        catch(IOException e)
        {
            System.out.println("创建personfile.txt文件失败.错误信息:"+e.getMessage());
            return;
        }
    }

    //写入数据
    try
    {
        PrintWriter pw = new PrintWriter(personfile);
        for(int i=0;i<12;i++)
        {
            pw.write(str[i]);
        }
        pw.close();
    }
    catch(FileNotFoundException e)
    {
        System.out.println("找不到文件!错误信息为:"+e.getMessage());
    }
}

public PersonUI(){  
}

}

  • 写回答

2条回答 默认 最新

  • 果丶果 2017-08-23 15:24
    关注

    你是在监听函数外面获取的,肯定获取不到,你应该在点击函数里面获取,每点击一次获取一次

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)