1、程序演示:

2、代码:

package test07;import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Reader;import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;import test04.Circle;//用户端登录界面设计
public class UserInteractive extends JFrame {//标签设置//1JLabel lab1_1 = new JLabel("用户名: ");JLabel lab1_2 = new JLabel("密码: ");//2JLabel lab2_1 = new JLabel("请输入新的用户名: ");JLabel lab2_2 = new JLabel("请输入新用户密码: ");JLabel lab2_3 = new JLabel("请确认新用户密码: ");//文本框设置//1JTextField jt1_1 = new JTextField(12);JPasswordField jt1_2 = new JPasswordField(12);//2JTextField jt2_1 = new JTextField(12);JTextField jt2_2 = new JTextField(12);JTextField jt2_3 = new JTextField(12);//按钮设置//1JButton jb1_1 = new JButton("登录");JButton jb1_2 = new JButton("重新输入");JButton jb1_3 = new JButton("注册");//2JButton jb2_1 = new JButton("完成");JButton jb2_2 = new JButton("取消");//窗口设置//1JFrame jf1 = new JFrame("登录界面");//2JFrame jf2 = new JFrame("注册界面");//Box盒子设置//1Box boxLabel,boxText,boxButton,boxUp,baseBox1;//2Box boxLabel_,boxText_,boxButton_,boxUp_,baseBox2;public void ShowUserIneractive(boolean key1, boolean key2){//设置布局==============================================jf1.setLayout(new FlowLayout());  jf2.setLayout(new FlowLayout());  //设置文本框宽、高========================================jt1_1.setMaximumSize(new Dimension(800,200));jt1_2.setMaximumSize(new Dimension(800,200));//标签入盒==============================================boxLabel = Box.createVerticalBox();boxLabel.add(lab1_1);boxLabel.add(Box.createVerticalStrut(10));boxLabel.add(lab1_2);boxLabel_ = Box.createVerticalBox();boxLabel_.add(lab2_1);boxLabel_.add(Box.createVerticalStrut(10));boxLabel_.add(lab2_2);boxLabel_.add(Box.createVerticalStrut(10));boxLabel_.add(lab2_3);//文本框入盒=============================================boxText = Box.createVerticalBox();boxText.add(jt1_1);boxText.add(Box.createVerticalStrut(10));boxText.add(jt1_2);boxText_ = Box.createVerticalBox();boxText_.add(jt2_1);boxText_.add(Box.createVerticalStrut(10));boxText_.add(jt2_2);boxText_.add(Box.createVerticalStrut(10));boxText_.add(jt2_3);//按钮入盒==============================================boxButton = Box.createHorizontalBox();boxButton.add(jb1_1);boxButton.add(Box.createHorizontalStrut(10));boxButton.add(jb1_2);boxButton.add(Box.createHorizontalStrut(10));boxButton.add(jb1_3);boxButton_ = Box.createHorizontalBox();boxButton_.add(jb2_1);boxButton_.add(Box.createHorizontalStrut(10));boxButton_.add(jb2_2);//上半部分入盒===========================================boxUp = Box.createHorizontalBox();boxUp.add(boxLabel);boxUp.add(Box.createHorizontalStrut(10));boxUp.add(boxText);boxUp_ = Box.createHorizontalBox();boxUp_.add(boxLabel_);boxUp_.add(Box.createHorizontalStrut(10));boxUp_.add(boxText_);//整体入盒==============================================baseBox1 = Box.createVerticalBox();baseBox1.add(boxUp);baseBox1.add(Box.createVerticalStrut(10));baseBox1.add(boxButton);baseBox2 = Box.createVerticalBox();baseBox2.add(boxUp_);baseBox2.add(Box.createVerticalStrut(10));baseBox2.add(boxButton_);//添加事件相应============================================AListener al = new AListener();jb1_3.addActionListener(al);jb1_2.addActionListener(al);jb1_1.addActionListener(al);jt2_1.addActionListener(al);jt2_2.addActionListener(al);jt2_3.addActionListener(al);jb2_1.addActionListener(al);jb2_2.addActionListener(al);//显示第一个窗口===========================================jf1.add(baseBox1);jf1.setBounds(300, 300, 400, 200);jf1.setVisible(key1);jf1.setDefaultCloseOperation(EXIT_ON_CLOSE);//按x退出//显示第二个窗口jf2.add(baseBox2);jf2.setBounds(300, 300, 400, 200);jf2.setVisible(key2);jf2.setDefaultCloseOperation(EXIT_ON_CLOSE);//按x退出   }//编写事件响应类===============================================class AListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getActionCommand().equals("注册")){lab2_1.setForeground(Color.BLACK);lab2_1.setText("请输入新的用户名:");lab2_2.setForeground(Color.BLACK);lab2_2.setText("请输入新用户密码:");key1 = false;key2 = true;jf1.setVisible(key1);jf2.setVisible(key2);jf1.setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗口1}else if(e.getActionCommand().equals("重新输入")){jt1_1.setText(" ");jt1_2.setText(" ");lab1_2.setForeground(Color.BLACK);lab1_2.setText("密码:");}//注册内容响应else if(e.getActionCommand().equals("完成")){int iscontinue = 1;String name = jt2_1.getText();String password1 = jt2_2.getText();String password2 = jt2_3.getText();//判断用户名是否已经存在//判断用户名是否重复try {FileReader inOne = new FileReader("D:\\username.txt");BufferedReader inTwo = new BufferedReader(inOne);String s = null;String []newName = new String[100];int i = 0;int pos = 0;while((s=inTwo.readLine())!=null){if(s.equals(name))//发现相同的名字给出提示{lab2_1.setForeground(Color.RED);lab2_1.setText("该用户已存在 ");iscontinue = 0;break;}}}catch(IOException q){q.printStackTrace();}//读取文件信息if(iscontinue == 1){//判断密码if(password1.length() >= 6){lab2_2.setForeground(Color.BLACK);lab2_2.setText("请输入新用户密码: ");if(password1.equals(password2))//判断两次密码是否一致{key2 = false;jf2.setVisible(key2);jf2.setDefaultCloseOperation(EXIT_ON_CLOSE);//密码正确关闭窗口2//将用户信息存入文件//创建用户姓名文件File file = new File("D://username.txt");FileOutputStream fos = null;OutputStreamWriter osw = null;try {if(!file.exists()){boolean hasFile = file.createNewFile();if(hasFile){System.out.println("file not exists, create new file");}fos = new FileOutputStream(file);}else{System.out.println("file exists");fos = new FileOutputStream(file, true);}osw = new OutputStreamWriter(fos,"gbk");osw.write(name);osw.write("\r\n");}catch(Exception q){q.printStackTrace();}finally {try {if(osw!=null){osw.close();}}catch(IOException q){q.printStackTrace();}try {if(fos!=null){fos.close();}}catch(IOException q){q.printStackTrace();}}//创建用户密码文件File file2 = new File("D://userpassword.txt");FileOutputStream fos2 = null;OutputStreamWriter osw2 = null;try {if(!file.exists()){boolean hasFile2 = file2.createNewFile();if(hasFile2){System.out.println("file not exists, create new file");}fos2 = new FileOutputStream(file2);}else{System.out.println("file exists");fos2 = new FileOutputStream(file2, true);}osw2 = new OutputStreamWriter(fos2,"gbk");osw2.write(password1);osw2.write("\r\n");}catch(Exception q){q.printStackTrace();}finally {try {if(osw2!=null){osw2.close();}}catch(IOException q){q.printStackTrace();}try {if(fos2!=null){fos2.close();}}catch(IOException q){q.printStackTrace();}}//返回登录界面JOptionPane.showMessageDialog(null, "注册成功", null, JOptionPane.INFORMATION_MESSAGE);key1 = true;jf1.setVisible(key1);}else//密码错误提示重新输入{lab2_3.setForeground(Color.RED);lab2_3.setText("密码错误请重新输入");}    }else{lab2_2.setForeground(Color.RED);lab2_2.setText("密码至少为六位");}} }else if(e.getActionCommand().equals("取消")){//关闭注册界面key2 = false;jf2.setVisible(key2);jf2.setDefaultCloseOperation(EXIT_ON_CLOSE);//返回登录界面key1 = true;jf1.setVisible(key1);}else if(e.getActionCommand().equals("登录")){String Uname = jt1_1.getText();String Upassword = jt1_2.getText();//1、在username文件里找Uname进行比较判断此用户是否注册过,并记录下用户当前所在行数//2、在userpassword文件里找Upassword取相同的行数的字符串与用户输入的字符串作比较判断是否一致,//3、一致则登录成功,不一致则登陆失败。try {//1、(1)将文件中的姓名信息存入数组FileReader inOne = new FileReader("D:\\username.txt");BufferedReader inTwo = new BufferedReader(inOne);String s = null;String []strName = new String[100];int i = 0;int pos = 0;while((s=inTwo.readLine())!=null){if(s.equals(Uname))pos = i;//定位用户名所在行数strName[i] = s;i++;}inOne.close();inTwo.close();//1、(1)将文件中的密码信息存入数组FileReader inOne2 = new FileReader("D:\\userpassword.txt");BufferedReader inTwo2 = new BufferedReader(inOne2);String s2 = null;String []strPassword = new String[100];int j = 0;while((s2=inTwo2.readLine())!=null){strPassword[j] = s2;j++;}inOne2.close();inTwo2.close();//3、判断用户名的密码是否正确if(strPassword[pos].equals(Upassword)&&strName[pos].equals(Uname)){key1 = false;jf1.setVisible(key1);jf1.setDefaultCloseOperation(EXIT_ON_CLOSE);JOptionPane.showMessageDialog(null, "登录成功", null, JOptionPane.INFORMATION_MESSAGE);}else {lab1_2.setForeground(Color.RED);lab1_2.setText("密码错误请重新输入");}}catch(IOException e1){e1.printStackTrace();}}}}public String toString(){return this+" ";}//设置选择页面boolean key1,key2;public boolean useKey1(){return true;}public boolean useKey2(){return true;}public boolean noUseKey1(){return false;}public boolean noUseKey2(){return false;}//主方法public static void main(String[] args){UserInteractive UI = new UserInteractive();//程序开始默认打开第一个界面UI.ShowUserIneractive(UI.useKey1(), UI.key2);}
}

JAVA语言编程练习--图形界面--简易登录界面相关推荐

  1. JAVA语言编程练习--图形界面+文件输入输出流--实现简单的用户注册登录系统

    目录 客户需求: 功能实现: 注意事项: 运行结果: ​ ​ 程序代码: 客户需求: 制作一个注册登录系统,可以把用户名和密码保存在txt文件里.完成登录.注册等功能. 可移植性强,可以嵌入多个桌面小 ...

  2. java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......

    导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...

  3. java语言就业方向_四大就业方向彻底解决你学习Java语言编程的后顾之忧-生活感悟与随笔 -亦是美网络...

    前面的文章中已经给大家介绍了关于Java编程语言的优势.特点以及就业前景等内容,大家之所以这么热衷于Java编程学习,不仅是因为Java是编程市场上最为广泛流行的语言,大家更关心的是学习了Java编程 ...

  4. 鸿蒙系统,鸿蒙app简易登录界面,界面开发教程

    鸿蒙系统,鸿蒙app简易登录界面,界面开发教程. // 这个是主Ability public class MainAbilitySlice extends AbilitySlice {@Overrid ...

  5. Java swing 界面开发 - 登录界面- 2021-11-10

    Java swing 界面开发 - 登录界面 界面开发 包 包的概念 开发包 Java界面开发包 登录界面开发步骤 最简单的窗体 优化窗体内容 注意 优化响应内容 界面开发 包 包的概念 包的加入让类 ...

  6. 黑马程序员:Java基础总结----Java语言编程规范

       黑马程序员:Java基础总结        Java语言编程规范:参考自SUN公司文档  ASP.Net+Android+IO开发..Net培训.期待与您交流!  I.   排版规范 A.  规 ...

  7. Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型、符号、运算符、数组Array总结之详细攻略

    Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型.符号.运算符.数组Array总结之详细攻略 目录 Java语言编程的基础知识之Java的变量与数据类型.符号.运算符.数组总 ...

  8. 零基础学Java语言---编程题

    零基础学Java语言-编程题 注意:没有上机实际测过,代码仅供参考 1.温度转换 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表示摄氏温度,F表示 ...

  9. [Android学习] 1. 简易登录界面设计

    通过对活动及控件的学习,今天制作一个简易登录界面.简要记录一下操作过程.遇到的问题及学到的经验,希望各位老师多多提出问题不吝赐教! 预期设计效果图  设计要求: 1.布局不限,参考上图: 2.利用Ed ...

最新文章

  1. html页面展示Json样式
  2. android 中间凹背景_Android 华为凹口屏适配小结
  3. hadoop集群常见问题解决
  4. 《数据挖掘概念与技术》学习笔记
  5. 凸优化第六章逼近与拟合 6.1范数逼近
  6. 改善程序与设计的55个具体做法 day5
  7. java deflate_[Java]关于Deflate、GZip格式网页的解压
  8. 怎么做新闻软文推广?故事性新闻稿写作技巧_云媒易
  9. 求助华为HG8321R光猫这样还有救吗
  10. 【解决方案】如何通过国标GB28181协议视频平台EasyGBS搭建安监局危化品可视化监控平台?
  11. MarkDown高阶语法手册
  12. K-近邻算法预测电影类型
  13. linux查看其他用户history,从Linux服务器上的其他用户隐藏命令历史记...
  14. NLP-二分类的应用-区分外卖评论好评/差评
  15. 项目启动图片验证码加载不出来
  16. 尚硅谷在线教育六:尚硅谷在线教育课程分类管理开发
  17. C语言--经典100题
  18. Win11电脑怎么截图?Win11电脑截图的多种方法介绍
  19. SKILLCAD v41R Linux64 1CD+Keyshot Pro v7.0.438
  20. 怎样通过手机与电脑上网

热门文章

  1. 为什么MD5算法不可逆,但网上有很多网站声称能够解密MD5
  2. Vue.js实战——表单与v-model
  3. 什么是工作流?(转贴)
  4. Qt图形化界面—迷宫最短路径问题
  5. 用Python自动计算Excel排班表的工时
  6. 空格(Space)的ASCII码值是:32
  7. P1027 [NOIP2001 提高组] Car 的旅行路线 (图 最短路)
  8. IPU相关知识(一)
  9. createCriteria用法
  10. 人才外包公司成本大揭露——一个外包人员的分析