/*FileWriter&PrintWriter input&output the character stream
 FileOutputStream&FileInputStream input&output the byte stream*/import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.GregorianCalendar;
import java.text.DateFormat;
import java.util.Date;public class login1 extends JFrame
{private JLabel la1,la2;
 private JTextField tF;
 private JPasswordField pwdF;
 private JButton bu1,bu2;
 Container cont;
 int i=1;
 String getInput1;
 String getInput2;
 FileWriter out=null;
 PrintWriter dataout=null;  
 public login1()
 {super("登入计费系统");
  cont=getContentPane();
  cont.setLayout (new GridLayout(3,2));
  
  la1=new JLabel("用户名");
  la2=new JLabel("密码");
  tF=new JTextField(20);
  pwdF=new JPasswordField(20);
  pwdF.setEchoChar ('*');  TFH handler= new TFH();//语句注册listener,这里全是handler
  bu1=new JButton("登入");
  bu1.addActionListener (handler);
  bu2=new JButton("重输");
  bu2.addActionListener (new ActionListener()
     {public void actionPerformed(ActionEvent ae) 
      {tF.setText ("");
     pwdF.setText ("");
    } 
 });
  
  cont.add(la1);
  cont.add(la2);
  cont.add(tF);
  cont.add(pwdF);
  cont.add(bu1);
  cont.add(bu2);
  setSize(300,200);
  Dimension dim = getToolkit().getScreenSize();
  setLocation(dim.width/2-getWidth()/2,dim.height/2-getHeight()/2);
  setVisible(true);  }
   
 public static void main(String[] args)throws IOException
  {login1 log=new login1();
log.addWindowListener(
         new WindowAdapter() {
            public void windowClosing( WindowEvent e )
            {
               System.exit( 0 );
            }
         }
      );
  }
 
  private class TFH implements ActionListener
  {
   public void actionPerformed(ActionEvent ae) 
      {String st1 =new String(tF.getText ());
       String st2 =new String(pwdF.getPassword ());
       String st3 ="jmfish";
       String st4 ="163";
       if(st3.equals(st1)&&st4.equals(st2))
       {JOptionPane.showMessageDialog(null,"正确");
        write(true);        
       }
       else   
       {write(false);
tF.setText ("");
pwdF.setText ("");
JOptionPane.showMessageDialog(null,"用户名或密码错误"+i+"次");
    i++;
    if(i==4)
    {JOptionPane.showMessageDialog(null, "3 Times", "Warning", JOptionPane.ERROR_MESSAGE);
   }
  
    //close the whole window
       };
      }
  }
  
  public void write(boolean boo)
   {boolean bo=boo;
    Date date=new Date();
    GregorianCalendar current = new GregorianCalendar();
    DateFormat dateFormat =DateFormat.getDateTimeInstance (DateFormat.FULL,DateFormat.FULL);
    try
    {//out=new File("d://jm/outFile.txt");
     //dataout=new FileOutputStream(out,true); 
     out= new FileWriter("d://jm/OutFile.txt",true);
     dataout= new PrintWriter(out);
     dataout.println("System Date: " +dateFormat.format(current.getTime()));
     getInput1=tF.getText ();
     getInput2=new String(pwdF.getPassword ());
     if(dataout!=null)
     {if(bo)
     {dataout.println ("登陆成功!");
      dataout.close ();
        out.close ();
     }
      else
     {dataout.println ("登陆失败!");
        //dataout.write (getInput1);
        dataout.println ("用户名:"+getInput1);
        dataout.println ("密码:"+getInput2);      
        System.out.println (bo);  
        out.close ();
      }
     }
} catch(IOException e)
{System.out.println (e);}
  }
}

解决方案 »

  1.   

    正确代码如下,请帮帮忙:
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.io.*;
    import java.net.*;
    import java.lang.reflect.*;import sun.net.ftp.*;
    import sun.net.*;import javax.swing.*;
    import javax.swing.border.*;
    import javax.swing.event.*;public class trans extends JFrame 
    {
      public static int BUFFER_SIZE = 10240;  protected JTextField m_txtFile;
      protected JTextArea  m_monitor;
      protected JProgressBar m_progress;
      protected JButton m_btGet;
      protected JButton m_btClose;
      protected JFileChooser m_chooser;  protected String m_sLocalFile;
      protected String m_sHostFile;  public trans() {
        super("File trans");
            
        JPanel p = new JPanel();
        p.setLayout(new FlowLayout());
        p.setBorder(new EmptyBorder(5, 5, 5, 5));    p.add(new JLabel("File:"));
        m_txtFile = new JTextField(20);
        p.add(m_txtFile);    m_monitor = new JTextArea(5, 20);
        m_monitor.setEditable(false);
        JScrollPane ps = new JScrollPane(m_monitor);
        p.add(ps);    m_progress = new JProgressBar();
        m_progress.setStringPainted(true);
        m_progress.setBorder(new BevelBorder(BevelBorder.LOWERED, 
          Color.white, Color.gray));
        m_progress.setMinimum(0);
        JPanel p1 = new JPanel(new BorderLayout());
        p1.add(m_progress, BorderLayout.CENTER);
        p.add(p1);    m_btGet = new JButton("Get");
        ActionListener lst = new ActionListener() 
        { public void actionPerformed(ActionEvent e) 
         {Thread downloader = new Thread() 
         {public void run() 
         {getFile();
    }
    };
                downloader.start();
                }
        };
        m_btGet.addActionListener(lst);
        m_btGet.setMnemonic('g');
        p.add(m_btGet);    m_btClose = new JButton("Close");
        lst = new ActionListener() { 
          public void actionPerformed(ActionEvent e) {
              System.exit(0);
          }
        };
        m_btClose.addActionListener(lst);
        m_btClose.setDefaultCapable(true);
        m_btClose.setMnemonic('g');
        p.add(m_btClose);    getContentPane().add(p, BorderLayout.CENTER);
        WindowListener wndCloser = new WindowAdapter() {
          public void windowClosing(WindowEvent e) {
            System.exit(0);
          }
        };
        addWindowListener(wndCloser);
           
        setSize(340,340);
        setResizable(false);
        setVisible(true);
      }  public void setButtonStates(boolean state) {
        m_btGet.setEnabled(state);
      }
     
      protected void getFile() 
      {m_sLocalFile = m_txtFile.getText();
       File getf=new File(m_sLocalFile);
        byte[] buffer = new byte[BUFFER_SIZE];
        try {
          int size = (int)(getf.length ());
          if (size > 0) {
            message("File " + getf.getName () + ": " + size + " bytes");
            setProgressMaximum(size);
          }
          else
            message("File " + getf.getName () + ": size unknown");
          int counter = 0;
            
            if (size > 0) {
             for(;counter<size;counter++)
             {
              setProgressValue(counter);
              
              long proc = (long) Math.round(m_progress.getPercentComplete() * 100);
              setProgressString(proc + " %");
              System.out.println(proc);
            }System.out.println(counter);
            }
            else {
              int kb = counter/1024;
              setProgressString(kb + " KB");
            }    }
        catch (Exception ex) {
          message("Error: "+ex.toString());
        }
      }
      protected void message(final String str) {
        if (str != null) {
          Runnable runner = new Runnable() { 
            public void run() {
              m_monitor.append(str + '\n');
              m_monitor.repaint();
            }
          };
          SwingUtilities.invokeLater(runner);
        }
      }  protected void setProgressValue(final int value) {
        Runnable runner = new Runnable() { 
          public void run() {
            m_progress.setValue(value);
          }
        };
        SwingUtilities.invokeLater(runner);
      }  protected void setProgressMaximum(final int value) {
        Runnable runner = new Runnable() { 
          public void run() {
            m_progress.setMaximum(value);
          }
        };
        SwingUtilities.invokeLater(runner);
      }  protected void setProgressString(final String string) {
        Runnable runner = new Runnable() { 
          public void run() {
            m_progress.setString(string);
          }
        };
        SwingUtilities.invokeLater(runner);
      }  public static void main(String argv[]) {
        new trans();
      }
    }