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

📄 ch8_e8_25.java

📁 代码包括《Java语言与面向对象程序设计题解与实验指导》一书中 “习题解答”部分的所有程序的Java源代码和编译后生成的字节码或相应的HTML文件。 盘中的目录与书中的章节一致。
💻 JAVA
字号:
import java.awt.*; 
import java.awt.event.*;
import java.io.*;

public class ch8_e8_25
{
    public static void main(String args[])
    {
        new GetDataStoreInFileFrame();
    }
}

class GetDataStoreInFileFrame extends Frame implements ActionListener
{
    final int NUMBER = 5;
    final String DOUBLE_INPUT_PROMPT_PREFIX = "      请输入第";
    final String DOUBLE_INPUT_PROMPT_SUFFIX = "个浮点数:";
    final String FILE_NAME_INPUT_PROMPT = "请输入保存数据的文件名:";
    double dataArray[] = new double[NUMBER];
    TextField inputTfd = new TextField(10);
    Label promptLbl = new Label(FILE_NAME_INPUT_PROMPT);
    int inputedData = 0;
    
    GetDataStoreInFileFrame()
    {
        super("输入数据");
        promptLbl.setText(DOUBLE_INPUT_PROMPT_PREFIX
            + "1" + DOUBLE_INPUT_PROMPT_SUFFIX);
        inputTfd.addActionListener(this);
        setLayout(new FlowLayout());
        add(promptLbl);
        add(inputTfd);
        addWindowListener(new winClose());
        setSize(300,200);
        setVisible(true);
    }
    
    public void actionPerformed(ActionEvent ae)
    {
        try
        {
            if(ae.getSource() == inputTfd)
            {
                if(inputedData < NUMBER)
                {
                    dataArray[inputedData] = Double.parseDouble(
                        inputTfd.getText());
                    inputTfd.setText("");
                    if(inputedData != NUMBER-1)
                        promptLbl.setText(DOUBLE_INPUT_PROMPT_PREFIX
                            + (inputedData+2) + DOUBLE_INPUT_PROMPT_SUFFIX);
                    else
                    {
                        promptLbl.setText(FILE_NAME_INPUT_PROMPT);
                        inputTfd.setVisible(false);
                        FileDialog fdialog = new FileDialog(this,"打开文件",
                            FileDialog.LOAD);
                        fdialog.setDirectory("C:\\temp");
                        fdialog.show();
                        File dataFile = new File(fdialog.getDirectory(),
                            fdialog.getFile());
                        RandomAccessFile raf = new RandomAccessFile(dataFile,"rw");
                        for(int i=0; i<NUMBER; i++)
                        {
                            raf.writeDouble(dataArray[i]);
                        }
                        //验证
                        raf.seek(0);
                        while(raf.getFilePointer()<raf.length())
                        {
                            System.out.println(raf.readDouble() + "\t");
                        }
                        raf.close();
                        inputTfd.setEnabled(false);
                        promptLbl.setText("数据已经保存在文件中");
                    }
                    inputedData++;
                }
            }
        }
        catch(NumberFormatException nfe)
        {
        }
        catch(IOException ioe)
        {
        }
    }
}

class winClose extends WindowAdapter
{
    public void windowClosing(WindowEvent we)
    {
        we.getWindow().dispose();
        System.exit(0);
    }
}

⌨️ 快捷键说明

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