package jnet;
//英汉小词典 随机存取文件 需改进 version1.0
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class F extends JFrame implements ActionListener{
File file = new File("英汉小词典.txt");
JButton writeBtn = new JButton("录入");
JButton viewBtn = new JButton("显示");
JTextField word = new JTextField(8);
JTextField note = new JTextField(8);
JTextArea txt = new JTextArea(20,30);
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
F(){
setTitle("英汉小词典");
setBounds(100,50,400,250);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(p1,"North");
p1.setBackground(Color.cyan);
p1.add(new JLabel("输入单词"));
p1.add(word);
p1.add(new JLabel("输入解释"));
p1.add(note);
p1.add(writeBtn);
writeBtn.addActionListener(this);
add(p2,"Center");
p2.add(viewBtn);
p2.add(txt);
viewBtn.addActionListener(this);
validate();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==writeBtn) {
inputWord();
}
if (e.getSource()==viewBtn) {
viewWord();
}
}
//显示汉语解释的方法
public void viewWord()
{
int number=1;
try {
@SuppressWarnings("resource")
RandomAccessFile infile = new RandomAccessFile(file, "rw");
@SuppressWarnings("unused")
String 单词 =null;
while((单词=infile.readUTF())!=null)
{
txt.append("\n"+number+单词);
txt.append(" " + infile.readUTF()); //读取汉语解释
txt.append("\n--------------------");
number++;
}
infile.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//处理输入的单词的
public void inputWord()
{
try {
RandomAccessFile outfile = new RandomAccessFile(file, "rw");
if (file.exists()) {
//实现指针跳到文件末尾
long length = file.length();
outfile.seek(length);
}
outfile.writeUTF("单词:"+word.getText());
outfile.writeUTF("解释:"+note.getText());
outfile.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new F();
}
}