https://www.cnblogs.com/w-y-h--/p/14337295.html
二、个人负责模块或任务说明
1.登录注册界面模块设计以及User类设计
2.阿里巴巴静态扫描纠正
3.团队博客编写
三、自己的代码提交记录
四、自己负责模块或任务详细说明
任务一:登录注册界面模块设计以及User类设计
1.User类的设计,在这里创建User类和对应的set/get方法,编写Check方法来用于登录注册判断ID是否重复
public boolean Check(String userId) {
boolean flag=true;
try {
BufferedReader bw1 = null;
bw1 = new BufferedReader(new FileReader("C:\\user.txt"));
String line = null;
while((line=bw1.readLine()) != null){
String[] datas = line.split("=");
if(datas[2].equals(userId))
{
flag=false;
break;
}
}
}catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
//判断id是否已存在
return flag;
}
}
2.注册设计
下面这部分代码是设计在注册界面成功注册后并将数据导入文件的代码,并且由于ID属于中奖记录的关键,不可重复,所以若重复则清空ID栏并且重新填写注册信息
private void rigistButtonActionPerformed(java.awt.event.ActionEvent evt){
// TODO add your handling code here:
String username = this.rigistnameTextField.getText().trim();
String password = new String(rigistpwdPasswordField.getPassword());
String id = this.idTextField.getText().trim();
String number = this.phoneTextField.getText().trim();
String money0 = this.moneyField.getText().trim();
Integer money = Integer.parseInt(money0);
User user = new User();
boolean flag = user.Check(id);
if(flag)
{
//注册操作
BufferedWriter bw = null;
try {
//此处写为true 写入的内容将会在文件的末尾处,相当于追加信息
bw=new BufferedWriter(new FileWriter("C:\\user.txt",true));
bw.write(username+"="+password+"="+id+"="+number+"="+money0);
bw.newLine(); //换行
bw.flush(); //刷新,将缓冲数据写到目的文件中去。
} catch (IOException ex) {
ex.printStackTrace();
}finally{
try {
bw.close(); //释放资源,关闭此流,再关闭前会先刷新他。
} catch (IOException ex) {
ex.printStackTrace();
}
}
JOptionPane.showMessageDialog(this, "您已注册成功!");
changeLogin();
}
else
{
JOptionPane.showMessageDialog(this, "此ID已存在,请重新输入");
this.idTextField.setText(""); //清空id栏
}
}
以下代码是对于注册界面的设计
private void initComponents() {
//定义
jPanel1 = new javax.swing.JPanel();
userLabel = new javax.swing.JLabel();
rigistpwdPasswordField = new javax.swing.JPasswordField();
rigistnameTextField = new javax.swing.JTextField();
passWordLabel = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
idTextField = new javax.swing.JTextField();
phoneLabel = new javax.swing.JLabel();
phoneTextField = new javax.swing.JTextField();
moneyLabel = new javax.swing.JLabel();
moneyField = new javax.swing.JTextField();
jPanel2 = new javax.swing.JPanel();
rigistButton = new javax.swing.JButton();
jButton1 = new javax.swing.JButton();
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("用户注册"));
userLabel.setText("用户名:");
passWordLabel.setText("密码:");
jLabel1.setText("ID:");
phoneLabel.setText("手机号:");
moneyLabel.setText("金额:");
//自动生成面板界面
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(60, 60, 60)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(userLabel)
.addComponent(passWordLabel)
.addComponent(jLabel1))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(rigistpwdPasswordField)
.addComponent(rigistnameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
.addComponent(idTextField)))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(phoneLabel)
.addComponent(moneyLabel))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(phoneTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
.addComponent(moneyField))))
.addContainerGap(90, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(42, 42, 42)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(userLabel)
.addComponent(rigistnameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(22, 22, 22)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(rigistpwdPasswordField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(passWordLabel))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(idTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(phoneLabel)
.addComponent(phoneTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(moneyLabel)
.addComponent(moneyField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(55, Short.MAX_VALUE))
);
//添加注册退出按钮
rigistButton.setText("注册");
rigistButton.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
rigistButtonActionPerformed(evt);
}
});
jPanel2.add(rigistButton);
jButton1.setText("退出");
jButton1.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel2.add(jButton1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>
3.登录设计
以下代码是对于登录界面的设计
private void initComponents() {
jPanel3 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
userTextField = new javax.swing.JTextField();
pwdPasswordField = new javax.swing.JPasswordField();
jPanel4 = new javax.swing.JPanel();
loginButton = new javax.swing.JButton();
rigistButton = new javax.swing.JButton();
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("彩票大乐透登录"));
jLabel1.setText("ID");
jLabel4.setText("密码");
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(36, 36, 36)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(30, 30, 30)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(pwdPasswordField, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)
.addComponent(userTextField))
.addContainerGap(50, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(15, 15, 15)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(userTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(pwdPasswordField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(39, Short.MAX_VALUE))
);
loginButton.setText("登录");
loginButton.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
loginButtonActionPerformed(evt);
}
});
jPanel4.add(loginButton);
rigistButton.setText("注册");
rigistButton.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
rigistButtonActionPerformed(evt);
}
});
jPanel4.add(rigistButton);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel4, 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();
}// </editor-fold>
以下代码是对于登录信息是否正确的判断
public boolean login(String userId, String password) {
boolean flag=false;
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("C:\\user.txt"));
String line = null;
while((line=br.readLine()) != null){
String[] datas = line.split("=");
u = new User(datas[0], datas[1], datas[2], datas[3], Integer.parseInt(datas[4]));
if(datas[2].equals(userId)&&datas[1].equals(password)){
flag=true;
break;
}
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}finally{
try {
br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
return flag;
}
下面代码是登录按钮和注册按钮的相关代码:用于用户切换登录注册界面操作
private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {
//点击登录按钮的事件
String userId = this.userTextField.getText().trim();
String password = new String(pwdPasswordField.getPassword());
//登录判断
boolean flag = login(userId, password);
t = new Ticket();
if(flag)
{
JOptionPane.showMessageDialog(this, "登录成功");
Select s = new Select(u,t);
s.setVisible(true);
this.setVisible(false);
this.dispose();
}
else
{
JOptionPane.showMessageDialog(this, "用户名或密码错误");
this.userTextField.setText(""); //登录失败,然后清空用户名和密码
this.pwdPasswordField.setText("");
this.userTextField.requestFocus(); //获取光标
}
}
private void rigistButtonActionPerformed(java.awt.event.ActionEvent evt) {
//点击注册按钮的事件
Regist ri = new Regist();
ri.setVisible(true);//打开注册界面的视图
this.dispose();//关闭登录界面的试图
}
任务二:阿里巴巴代码规范
第一次使用阿里巴巴静态扫描,对其较多的错误还不太理解,而且课设完成比较仓促,所以尽全力进行更改,更改结果如下:
我将缺少@Override以及不符合lowerCamelCase命名风格的命名大部分进行修改:
五、课程设计感想
在这次的课程设计中,我负责的代码不是很多,但是我还是挺有收获的。
最初是对于码云的使用,也就是Git的提交,非常困惑,经常遇到rejected冲突,不知道如何解决,尝试很多个方法,后面也是勉强解决了,但是在这部分花的时间都很多,但是也有学习到;
再者是对于登陆注册界面的设计,最开始我并不会用GUI,最初只是编写了选号和登录注册功能对应的类而已,后面勉强学习了一些知识,试着写了一下注册登录界面,最后成功写出了登录注册模块;
还有就是在利用阿里巴巴规范静态扫描,扫描出来的错误是太多了,了解了lowerCamelCase的命名风格后进行全盘修改,最后改了很大一部分,还有一部分未解决,后续会继续完善;
对于这次课设,我负责的相对于来说是很少的,但是学习到挺多,希望以后自己会继续努力学习这方面的知识