要求:写一下用户登录和注册,要求从文件中读取用户或者把用户信息写入文件。写入时不同用户用一个分割符 分开,读的时候用split方法拆成多个用户信息。(用集合)Map

PS:可是吧,咱愣是没有用Map,也没有用split,直接用&&做分隔符,写入文件(默认在D:\reg.txt,可以自己修改)中。然后读取文件就好。一行一个用户信息。 :lol:


如果想全部的代码和可执行文件,请猛点击我用户登录和注册.rar

这个是logon文件。 :evil:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package day17;
 
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import javax.swing.*;
 
public class logon implements ActionListener {
	/**
	 * @author Laycher {@link http://laycher.cn}
	 */
	JFrame jf;
	JTextField jtf;
	JPasswordField jpf;
 
	public logon() {
		jf = new JFrame("登录");
		jf.setLayout(new GridLayout(5, 1));
		jf.add(new JPanel());
		JLabel jl1 = new JLabel("用户名:");
		jtf = new JTextField(12);
		JPanel jp1 = new JPanel();
		jp1.add(jl1);
		jp1.add(jtf);
		jf.add(jp1);
 
		JLabel jl2 = new JLabel("  密  码: ");
		jpf = new JPasswordField(12);
		JPanel jp2 = new JPanel();
		jp2.add(jl2);
		jp2.add(jpf);
		jf.add(jp2);
 
		JPanel jp3 = new JPanel();
		JButton jb1 = new JButton("我要注册");
		jb1.addActionListener(this);
		JButton jb2 = new JButton("登录");
		jb2.addActionListener(this);
		JButton jb3 = new JButton("取消");
		jb3.addActionListener(this);
		jp3.add(jb1);
		jp3.add(jb2);
		jp3.add(jb3);
		jf.add(jp3);
 
		jf.setResizable(false);
		jf.setVisible(true);
		jf.setSize(300, 200);
		jf.setLocation(300, 200);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
 
	public static void main(String[] args) {
		new logon();
	}
 
	@Override
	public void actionPerformed(ActionEvent e) {
		String comm = e.getActionCommand();
		if (comm.equals("我要注册")) { // 已经能够确认了的字符串放在equals的后面
			jf.dispose();
			new register();
		} else if (comm.equals("登录")) {
			if ("".equals(jtf.getText())
					|| "".equals(new String(jpf.getPassword()))
					|| jpf.getPassword() == null) {
				JOptionPane.showConfirmDialog(
						jf, // 如果为null,此框架显示在中央,为jf则显示为jf的中央
						"用户名 或者 密码 不能为空!!\n请重新输入!", "错误",
						JOptionPane.DEFAULT_OPTION);
				jtf.setText(null);
				jpf.setText(null);
				jtf.requestFocus();// 光标回来
			} else {
				String s = jtf.getText() + "&&" + new String(jpf.getPassword());
				String name = jtf.getText() + "&&";
				File file = new File("D:\\reg.txt");
				try { // 读文件的注册信息
					FileInputStream fis = new FileInputStream(file);
					String s1 = "";
					byte[] b = new byte[1024];
					while (true) {
						int i = fis.read(b);
						if (i == -1)
							break;
						s1 = s1 + new String(b, 0, i);
					}
					fis.close();// 关闭流
					int i = s1.indexOf(name);
					int j = s1.indexOf(s);
					if (i == -1) { // 如果文档中没有,说明没有此用户名
						JOptionPane.showConfirmDialog(
								jf, // 如果为null,此框架显示在中央,为jf则显示为jf的中央
								"没有此用户名!\n请重新 登录 或者 注册!", "错误",
								JOptionPane.ERROR_MESSAGE);// 此处有两个选项,还未解决问题
						jtf.setText(null);
						jpf.setText(null);
						jtf.requestFocus();// 光标回来
					} else {
						if (j == -1) {
							JOptionPane.showConfirmDialog(
									jf, // 如果为null,此框架显示在中央,为jf则显示为jf的中央
									"密码错误!\n请重新输入密码!", "错误",
									JOptionPane.DEFAULT_OPTION);
							jpf.setText(null);
							jpf.requestFocus();// 光标回来
						} else {
							JOptionPane.showConfirmDialog(
									jf, // 如果为null,此框架显示在中央,为jf则显示为jf的中央
									"登录成功!\n" + "用户名 : " + jtf.getText()
											+ "\n密码 : "
											+ new String(jpf.getPassword()),
									"登录结果", JOptionPane.DEFAULT_OPTION);
						}
					}
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			}
		} else if (comm.equals("取消")) {
			System.exit(0);
		}
 
	}
 
}

这个是register文件 :evil:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
package day17;
 
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
 
import javax.swing.*;
 
public class register implements ActionListener {
	/**
	 * @author Laycher {@link http://laycher.cn}
	 */
	JFrame jf;
	JTextField jtf;
	JPasswordField jpf, jpf2;
 
	public register() {
		jf = new JFrame("注册");
		jf.setLayout(new GridLayout(6, 1));
		jf.add(new JPanel());
		JLabel jl1 = new JLabel(" 用  户  名:");
		jtf = new JTextField(12);
		JPanel jp1 = new JPanel();
		jp1.add(jl1);
		jp1.add(jtf);
		jf.add(jp1);
 
		JLabel jl2 = new JLabel(" 密        码:");
		jpf = new JPasswordField(12);
		JPanel jp2 = new JPanel();
		jp2.add(jl2);
		jp2.add(jpf);
		jf.add(jp2);
 
		JLabel jl3 = new JLabel("确认密码:");
		jpf2 = new JPasswordField(12);
		JPanel jp3 = new JPanel();
		jp3.add(jl3);
		jp3.add(jpf2);
		jf.add(jp3);
 
		JPanel jp4 = new JPanel();
		JButton jb1 = new JButton("确认注册");
		jb1.addActionListener(this);
		JButton jb2 = new JButton("取消");
		jb2.addActionListener(this);
		jp4.add(jb1);
		jp4.add(jb2);
		jf.add(jp4);
 
		jf.setResizable(false);
		jf.setVisible(true);
		jf.setSize(300, 240);
		jf.setLocation(300, 200);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
 
	public static void main(String[] args) {
		new register();
	}
 
	@Override
	public void actionPerformed(ActionEvent e) {
		String comm = e.getActionCommand();
		if (comm.equals("确认注册")) {
			// jf.dispose();
			if ("".equals(jtf.getText())
					|| "".equals(new String(jpf.getPassword()))
					|| jpf.getPassword() == null
					|| "".equals(new String(jpf2.getPassword()))
					|| jpf2.getPassword() == null) {
				final JFrame jf = new JFrame("错误");
				JLabel jl = new JLabel("用户名 或者 密码 不能为空!");
				JPanel jp1 = new JPanel();
				JPanel jp2 = new JPanel();
				jp1.add(jl);
				jf.add(jp1);
				JButton jb = new JButton("确定");
				jb.addActionListener(new ActionListener() {
 
					@Override
					public void actionPerformed(ActionEvent e) {
						jf.dispose();
					}
 
				});
				jp2.add(jb);
				jf.add(jp2);
				jf.setLayout(new GridLayout(2, 1));
				jf.setResizable(false);
				jf.setVisible(true);
				jf.pack();
				jf.setLocation(400, 300);
			} else {
				String s = jtf.getText() + "&&" + new String(jpf.getPassword())
						+ "\r\n";// '\r'+'\n'也可以,"\r"+"\n"也可以
				String name = jtf.getText() + "&&";
				File file = new File("D:\\reg.txt");
				try {
					file.createNewFile(); // 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
				} catch (IOException e2) {
					e2.printStackTrace();
				}
				try { // 读文件的注册信息
					FileInputStream fis = new FileInputStream(file);
					String s1 = "";
					byte[] b = new byte[1024];
					while (true) {
						int i = fis.read(b);
						if (i == -1)
							break;
						s1 = s1 + new String(b, 0, i);
					}
					fis.close();// 关闭流
					int i = s1.indexOf(name);
					if (i == -1) { // 如果文档中没有,要注册到文件中
						if (new String(jpf.getPassword()).equals(new String(
								jpf2.getPassword()))) {
							try {
								FileOutputStream fos = new FileOutputStream(
										file, true);
								// true就是追加,false就是替换。
								fos.write(s.getBytes());
								fos.close();
							} catch (Exception e1) {
								e1.printStackTrace();
							}
							int a = JOptionPane.showConfirmDialog(jf, "注册成功!\n"
									+ "用户名 : " + jtf.getText() + "\n密码 : "
									+ new String(jpf.getPassword())
									+ "\n点确定转入登录界面", "注册结果",
									JOptionPane.OK_CANCEL_OPTION);
							if (a == 0) {
								jf.dispose();
								new logon();
							}
						} else {
							JOptionPane.showConfirmDialog(
									jf, // 如果为null,此框架显示在中央,为jf则显示为jf的中央
									"两次密码不一样!\n请重新输入密码!", "密码不一样",
									JOptionPane.CLOSED_OPTION);
							jpf.setText(null);
							jpf2.setText(null);
							jpf.requestFocus();// 光标回来
						}
					} else {
 
						JOptionPane.showConfirmDialog(
								jf, // 如果为null,此框架显示在中央,为jf则显示为jf的中央
								"用户名已经被注册!\n请换一个用户名重新注册!", "错误",
								JOptionPane.CLOSED_OPTION);
						jtf.setText(null);
						jpf.setText(null);
						jpf2.setText(null);
						jtf.requestFocus();// 光标回来
					}
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			}
		} else if (comm.equals("取消")) {
			System.exit(0);
		}
 
	}
}

>> 若为原创,转载请注明: 转载自Laycher's Blog

>> 本文链接地址: java 用户登录和注册GUI

>> 订阅本站: http://feed.feedsky.com/laycher



无觅相关文章插件,快速提升流量