一个java io流做的通讯录,有个问题,代码在下面?
在文件中显示为:姓名 学号 年龄
gg gg gg
姓名 学号 年龄
mm mm mm
姓名 学号 年龄
kk kk kk
我想只显示一行 姓名 学号 年龄 怎么办?我代码在下面
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class addreList extends JFrame implements ActionListener {
JPanel jp1,jp2,jp3;
JMenu jm;
JMenuItem reveal,writer;
JMenuBar jbar;
JLabel jl1,jl2,jl3,jl4,jl5;
JTextField jtf1,jtf2,jtf3;
JButton jb;
File file=new File("c://addreList.txt");
BufferedWriter out=null;
addreList() throws Exception{
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
reveal=new JMenuItem("显示");
writer=new JMenuItem("录入");
jm=new JMenu("文件");
jbar=new JMenuBar();
jl1=new JLabel("姓名:");
jl2=new JLabel("学号:");
jl3=new JLabel("年龄:");
jl4=new JLabel("录入:");
jtf1=new JTextField(20);
jtf2=new JTextField(20);
jtf3=new JTextField(20);
jb=new JButton("确定");
jm.add(reveal);
jm.add(writer);
jbar.add(jm);
add(jbar,BorderLayout.NORTH);
jp1.setLayout(new GridLayout(4,1,10,10));
jp2.setLayout(new GridLayout(4,1,10,10));
jp1.add(jl1);
jp2.add(jtf1);
jp1.add(jl2);
jp2.add(jtf2);
jp1.add(jl3);
jp2.add(jtf3);
jp1.add(jl4);
jp2.add(jb);
jb.addActionListener(this);
reveal.addActionListener(this);
writer.addActionListener(this);
add(jp1,BorderLayout.WEST);
add(jp2,BorderLayout.EAST);
setSize(400,300);
setLocation(400,300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[]args) throws Exception{
addreList addre=new addreList();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jb){
try{
out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true)));
if(!file.exists())
file.createNewFile();
out.write("姓名"+" ");
out.write("学号"+" ");
out.write("年龄"+" ");
out.newLine();
out.write(jtf1.getText()+" ");
out.write(jtf2.getText()+" ");
out.write(jtf3.getText()+" ");
out.newLine();
out.close();
}
catch(Exception e1){
}
JOptionPane.showMessageDialog(this, "输入完毕");
}
if(e.getSource()==reveal){
remove(jp1);
remove(jp2);
JTextArea area=new JTextArea(20,35);
jp3.add(area);
add(jp3);
String name = null;
int num=1;
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(file));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
while((name=in.readLine())!=null){
area.append("\n"+name);
name=new String(name);
num++;
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
repaint();
}
if(e.getSource()==writer){
remove(jp3);
add(jp1);
add(jp2);
repaint();
}
}
}
--------------------编程问答--------------------
boolean flag = true;//放到外面--------------------编程问答-------------------- 非常感谢您,问题解决了。
public void actionPerformed(ActionEvent e) {
if(flag){
out.write("姓名"+" ");
out.write("学号"+" ");
out.write("年龄"+" ");
out.newLine();
flag = false;
}
out.write(jtf1.getText()+" ");
out.write(jtf2.getText()+" ");
out.write(jtf3.getText()+" ");
out.newLine();
}
//只是大致是这么的结构,你改一下
还想问你个问题:
在盘中写入一个文件,里面写个
姓名 班别 学号 年龄
张三 3 01 15
李氏 4 02 16
王五 5 03 17
怎样用个窗体界面 实现在文本框中输入名字在按下查询按钮就能查询出该人的这一行数据在文本域中显示?
--------------------编程问答-------------------- 还有就是为什么boolean 要放在外面? --------------------编程问答-------------------- boolean 放在外面我理解了,你帮我解决下上一个问题吧谢谢了?
补充:Java , Java SE