我用NetBeans设计的,我希望在点击 jButton1 的时候
首先判断 jPasswordField1 和 jPasswordField2 里的密码是否一样,如果不一样在jLabel1里高亮显示提示。
如果一样则读取jTxtField里的用户名,然后在一个uid.txt里寻找是否有这个用户名,如果有,在jLabel1里高亮显示提示。
如果没有则可以在uid.txt的末尾添加这个用户名,并且生成一个以用户名为名的二进制文件,在其中保存密码。
但是我每次想保存的时候都是出现异常....还请高手能帮我解决一下啦。这个问题困扰我很久了。
我一直想找老师的,可是我们的老师整天不见人....
我郁闷了很久了,还希望能有人使我拨开乌云见灿烂阳关啦!
谢谢啦
下面是代码:
(FIREFOX用不了那个代码网站的添加功能???)
/*
* Register.java
*
* Created on 2008年5月31日, 下午4:31
*/package newtest1;import java.awt.Color;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;/**
*
* @author kumuking
*/
public class Register extends javax.swing.JFrame {
public Register() {
initComponents();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(jPasswordField1.getText().equals(jPasswordField2.getText())){
try
{
BufferedReader getUid = new BufferedReader(new FileReader("uid.txt"));
PrintWriter output = new PrintWriter(new FileOutputStream("uid.txt"),true);
ObjectOutputStream pw = new ObjectOutputStream(new FileOutputStream(jTextField1.getText()));
String id = getUid.readLine();
while(id != null)
{
if(jTextField1.getText().equals(id))
{
jPanel1.setBackground(Color.RED);
jLabel1.setText("ERROR : The entered username has existed! TRY AGAIN!");
}
else
{
output.println(jTextField1.getText());
pw.writeUTF(jPasswordField1.getText());
getUid.close();
output.close();
pw.close();
}
}
}
catch(Exception e1)
{
jPanel1.setBackground(Color.RED);
jLabel1.setText("ERROR : Opening files failed or creating files error!");
}
}
else
{
jPanel1.setBackground(Color.RED);
jLabel1.setText("ERROR : Enter two separate passwords! TRY AGAIN!");
}
} private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
} private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
jTextField1.setText("");
jPasswordField1.setText("");
jPasswordField2.setText("");
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Register().setVisible(true);
}
});
}
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JPasswordField jPasswordField2;
private javax.swing.JTextField jTextField1;
}
首先判断 jPasswordField1 和 jPasswordField2 里的密码是否一样,如果不一样在jLabel1里高亮显示提示。
如果一样则读取jTxtField里的用户名,然后在一个uid.txt里寻找是否有这个用户名,如果有,在jLabel1里高亮显示提示。
如果没有则可以在uid.txt的末尾添加这个用户名,并且生成一个以用户名为名的二进制文件,在其中保存密码。
但是我每次想保存的时候都是出现异常....还请高手能帮我解决一下啦。这个问题困扰我很久了。
我一直想找老师的,可是我们的老师整天不见人....
我郁闷了很久了,还希望能有人使我拨开乌云见灿烂阳关啦!
谢谢啦
下面是代码:
(FIREFOX用不了那个代码网站的添加功能???)
/*
* Register.java
*
* Created on 2008年5月31日, 下午4:31
*/package newtest1;import java.awt.Color;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;/**
*
* @author kumuking
*/
public class Register extends javax.swing.JFrame {
public Register() {
initComponents();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(jPasswordField1.getText().equals(jPasswordField2.getText())){
try
{
BufferedReader getUid = new BufferedReader(new FileReader("uid.txt"));
PrintWriter output = new PrintWriter(new FileOutputStream("uid.txt"),true);
ObjectOutputStream pw = new ObjectOutputStream(new FileOutputStream(jTextField1.getText()));
String id = getUid.readLine();
while(id != null)
{
if(jTextField1.getText().equals(id))
{
jPanel1.setBackground(Color.RED);
jLabel1.setText("ERROR : The entered username has existed! TRY AGAIN!");
}
else
{
output.println(jTextField1.getText());
pw.writeUTF(jPasswordField1.getText());
getUid.close();
output.close();
pw.close();
}
}
}
catch(Exception e1)
{
jPanel1.setBackground(Color.RED);
jLabel1.setText("ERROR : Opening files failed or creating files error!");
}
}
else
{
jPanel1.setBackground(Color.RED);
jLabel1.setText("ERROR : Enter two separate passwords! TRY AGAIN!");
}
} private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
} private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
jTextField1.setText("");
jPasswordField1.setText("");
jPasswordField2.setText("");
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Register().setVisible(true);
}
});
}
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JPasswordField jPasswordField2;
private javax.swing.JTextField jTextField1;
}
private void initComponents() { jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jPasswordField1 = new javax.swing.JPasswordField();
jPasswordField2 = new javax.swing.JPasswordField();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText(" Please register first, and then log in."); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 343, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(21, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE)
); jLabel2.setText("User Name:"); jLabel3.setText("Password:"); jLabel4.setText("Confirm:"); jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
}); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE)
.addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE)
.addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPasswordField2)
.addComponent(jPasswordField1)
.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE))
.addGap(61, 61, 61))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(24, 24, 24)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
.addComponent(jPasswordField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
}); jButton2.setText("RESET");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
}); jButton3.setText("EXIT");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
}); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addContainerGap(54, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(36, 36, 36)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(42, 42, 42)
.addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(40, 40, 40))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton3)
.addComponent(jButton2))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jPanel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
); pack();
}
e1.printStackTrace();你应该打印出异常信息加上如上红色所示那句代码
估计是找不到文件 你把那个txtx文件 放到d盘根目录下
然后改成下面的 就可以了BufferedReader getUid = new BufferedReader(new FileReader(
"d:/uid.txt"));
PrintWriter output = new PrintWriter(new FileOutputStream(
"d:/uid.txt"), true);
你好,谢谢你回答我的问题。
可是...
我按你的方法作了,可是还是不行。
你在你的电脑上,测试能通过吗?
显示是 uid.txt (No such file or directory)
可是我明明有一个这么文件阿
原来是放在同一个文件夹的
后来按你的方法放在了 e盘根目录
可是一样...
PrintWriter output = new PrintWriter(new FileOutputStream("e:/uid.txt"),true);放在e盘根目录的话就要改成上面的
把 路径写对
现在没有异常抛出啦可是又有一个问题出现啦...
这次是直接把uid.txt里的信息全部刷没了..
我在默认构造器明明加了一个 true 阿...