在文件中显示为:
姓名 学号 年龄 
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();
}
} }

解决方案 »

  1.   

    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();
    }
    //只是大致是这么的结构,你改一下
      

  2.   

    还有就是为什么boolean 要放在外面?
      

  3.   

    boolean 放在外面我理解了,你帮我解决下上一个问题吧谢谢了?