编写一个登录窗口, 密码输入采用密码框,输入密码显示为“*”,当输入用户名admin密码123的时候点击确定跳转到学生信息录入窗口界面,其他输入显示用户名密码错误。点击取消退出运行。
 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class _1用户登录 {public static void main(String[] args) {LogInF login = new LogInF();}
}
//凡是xxL:代表Lable标签; xxT:代表TextField文本框;xxP:代表Panel面板
//登录窗口:
class LogInF extends JFrame {private int width = 300, height = 150;//窗口大小//以下用户名、密码的标签和文本框,填写密码的组件用"密码框",确认和取消按钮:private JLabel userL = new JLabel("用户名:"), pwL = new JLabel("密    码:");private JTextField userT = new JTextField(10);private JPasswordField pwT = new JPasswordField(10);private JButton confirm = new JButton("确认"), cancel = new JButton("取消");//以下三个面板,分别装用户名的标签的文本框,密码的标签和文本框,2个按钮:private JPanel userP = new JPanel(), pwP = new JPanel(), btnP = new JPanel();//确认按钮 监听器接口:private ConfirmListener b1 = new ConfirmListener();//ActionListener接口只有一个方法:actionPerformedclass ConfirmListener implements ActionListener {public void actionPerformed(ActionEvent e) {//判断账号密码是否正确:String user = userT.getText();String pw = String.valueOf(pwT.getPassword());if (user.equals("admin") && pw.equals("123")) {JOptionPane.showMessageDialog(rootPane, "登陆成功!");dispose();//关闭登录窗口InfoF infof = new InfoF();//打开个人信息窗口} else {//提示错误JOptionPane.showMessageDialog(rootPane, "用户名或密码错误!");}}}
//取消按钮 监听器接口:private CancleListener b2 = new CancleListener();class CancleListener implements ActionListener {public void actionPerformed(ActionEvent e) {System.exit(-1);//退出}}//构造函数  public LogInF() {super("登录界面");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(width, height);//设置大小//网格布局,3个面板,3行1列:setLayout(new GridLayout(3, 1));//添加3个面板:add(userP);add(pwP);add(btnP);//面板上添加组件://用户面板添加用户名标签和编辑框:userP.add(userL);userP.add(userT);//密码面板添加密码标签和编辑框:pwP.add(pwL);pwP.add(pwT);//按钮面板添加2个按钮:btnP.add(confirm);btnP.add(cancel);//输入密码时显示*,这里的编辑框是密码框pwT.setEchoChar('*');
//按钮添加监听器       confirm.addActionListener(b1);cancel.addActionListener(b2);//设置窗口位置,可见,不可更改大小     setLocation(300, 250);setVisible(true);setResizable(false);}
}//学生信息窗口:
class InfoF extends JFrame {private int width = 350, height = 450;//窗口大小//以下所有的面板:学号面板,姓名、性别、出生日期、团员否、专业、地址、简介面板:private JPanel snoP = new JPanel(), nameP = new JPanel(), sexP = new JPanel(), birthP = new JPanel(),memP = new JPanel(), spetP = new JPanel(), addP = new JPanel(), brifeP = new JPanel(), btnP = new JPanel();//以下各标签:private JLabel snoL = new JLabel("学         号:"), nameL = new JLabel("姓         名:"),sexL = new JLabel("性         别:"), birthL = new JLabel("出生日期:"), memL = new JLabel("团         员:"),spetL = new JLabel("专         业:"), addL = new JLabel("家庭地址:"), brifeL = new JLabel("简         介:");//以下各文本框或复选框或按钮组或单选按钮或组合框等:
//要让单选按钮(单选框)表现排他行为,需要把它们加入到一个按钮组ButtonGroup中private JTextField snoT = new JTextField(10), nameT = new JTextField(6), birthT = new JTextField(10),addT = new JTextField(15);private ButtonGroup sexBtn = new ButtonGroup();private JRadioButton rb1 = new JRadioButton("男", false), rb2 = new JRadioButton("女", true);private JCheckBox memC = new JCheckBox("是");private String[] spetStrings = { "计算机", "自动化", "汉语言文学" };private JComboBox spetC = new JComboBox(spetStrings);private JTextArea brifeT = new JTextArea(8, 20);// 简历文本区域//以下2个按钮,保存和取消:private JButton store = new JButton("保存"), cancle = new JButton("取消");// 保存、取消按钮//构造函数:public InfoF() {super("学生信息录入窗口");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(width, height);setLocation(500, 200);//BoxLayout和GridLayout类似,BoxLayout可以在水平或者垂直方向控制组件的位置setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));//以下各面板设置流式布局,左对齐,并添加各标签和文本框snoP.setLayout(new FlowLayout(FlowLayout.LEFT));snoP.add(snoL);snoP.add(snoT);nameP.setLayout(new FlowLayout(FlowLayout.LEFT));nameP.add(nameL);nameP.add(nameT);sexP.setLayout(new FlowLayout(FlowLayout.LEFT));sexP.add(sexL);
//单选按钮要添加到一个按钮组中:        sexBtn.add(rb1);sexBtn.add(rb2);
//2个单选按钮加入到性别面板中:        sexP.add(rb1);sexP.add(rb2);birthP.setLayout(new FlowLayout(FlowLayout.LEFT));birthP.add(birthL);birthP.add(birthT);memP.setLayout(new FlowLayout(FlowLayout.LEFT));memP.add(memL);memP.add(memC);spetP.setLayout(new FlowLayout(FlowLayout.LEFT));spetP.add(spetL);spetP.add(spetC);addP.setLayout(new FlowLayout(FlowLayout.LEFT));addP.add(addL);addP.add(addT);brifeP.setLayout(new FlowLayout(FlowLayout.LEFT));brifeP.add(brifeL);brifeP.add(brifeT);
//简历文本区域不可编辑:        brifeT.setEditable(false);//2个按钮添加到按钮面板中:        btnP.add(store);btnP.add(cancle);//以下添加各面板,是BoxLayout的垂直布局方式:     add(snoP);add(nameP);add(sexP);add(birthP);add(memP);add(spetP);add(addP);add(brifeP);add(btnP);//按钮添加监听器:比登录窗口里实现的方法简洁一点:store.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {brifeT.setText("");//先清空brifeT.append("学号:" + snoT.getText() + "\n");brifeT.append("姓名:" + nameT.getText() + "\n");//一个条件表达式:brifeT.append("性别:" + (rb1.isSelected() ? "男" : "女") + "\n");brifeT.append("出生日期:" + birthT.getText() + "\n");//又一个条件表达式:brifeT.append("是否为团员:" + (memC.isSelected()  ? "是" : "否") + "\n");brifeT.append("专业:" + spetC.getSelectedItem() + "\n");brifeT.append("家庭住址:" + addT.getText() + "\n");}});//取消按钮增加监听器:       cancle.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.exit(-1);}});
//设置可见,不可调整大小setVisible(true);setResizable(false);}
}

宋分题——Java实现登录窗口 和 信息录入窗口相关推荐

  1. 梅开二度宋分题——Java实现登录 和 信息录入功能

    0x0 原题回顾 https://blog.csdn.net/weixin_43359009/article/details/105545404 0x1 题目描述 在第1个实验的基础上,修改保存和读取 ...

  2. js中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令是什么?

    弹出警告窗口"输入数据无效" 弹出确认窗口"确认保存吗?" 弹出信息输入窗口"请在此输入你的姓名" "输入数据无效": ...

  3. [Leetcode][第718题][JAVA][最长重复子数组][动态规划][滑动窗口][暴力]

    [问题描述][中等] 给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度.示例 1:输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度 ...

  4. 【Flink】各种窗口的使用(处理时间窗口、事件时间窗口、窗口聚合窗口)

    文章目录 一 Flink 中的 Window 1 Window (1)Window概述 (2) Window类型 a 滚动窗口(Tumbling Windows) b 滑动窗口(Sliding Win ...

  5. 华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题???

    华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题??? 什么是NIO 缓冲区(Buffer) 缓冲区类型 获取缓冲区 核心属性 核心方法 非直接缓冲区和直接缓冲区 非直接缓冲区 ...

  6. 2021年100题Java春招面试题

    2021年100题Java春招面试题 开发技术类 1. 为什么现在函数式编程这么越来越受关注?为什么函数式编程重要?什么时候适用函数式语言? 函数式编程有什么好处,和面向对象比有什么好处,有什么坏处. ...

  7. 微信群控系统制作系列一——java模拟登录网页版微信

    PS:很多人咨询我怎么做手机群控系统,因此我开了个制作群控系统的系列,准备分五期讲解群控系统的制作.前两篇是基础内容. 今天做个简单的java模拟登录网页版微信. 既然要做模拟登录,那么我们一定要了解 ...

  8. 第六届省赛(软件类)真题----Java大学A组答案及解析

    第六届省赛(软件类)真题----Java大学A组答案及解析 熊怪吃核桃 星系炸弹 九数分三组 循环节长度 打印菱形 加法变乘法 牌型种数 移动距离 垒骰子 灾后重建 一.熊怪吃核桃 森林里有一只熊怪, ...

  9. 第五届省赛(软件类)真题----Java大学A组答案及解析

    第五届省赛(软件类)真题--Java大学A组答案及解析 子序列最大长度 莱布尼茨公式 n的n次幂 七对数字 勾股定理 九阶数独 矩阵射线 一.子序列最大长度 一个串的子串是指该串的一个连续的局部.如果 ...

最新文章

  1. java基础(十三)-----详解内部类——Java高级开发必须懂的
  2. 面试Java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备...
  3. 百度推送 android7.1,【SDK版本更新】Android SDK 5.7.1
  4. 不再重复造轮子,AI 给你推荐更好的代码,还没bug
  5. HOWTO:如何修改InstallShield的运行环境
  6. 【自适应盲均衡9】基于判决反馈的多径衰落信道的盲均衡与MATLAB仿真(CMA-DFE)
  7. php版本哪个没有面向对象,php面向对象的方法重载两种版本比较
  8. Java核心(一)线程Thread详解
  9. 猜数字(HDU-2178)
  10. 生成子集——二进制法
  11. burp 代理的时候无法访问https网站
  12. Linux 网络服务之FTP 文件传输
  13. Java 并发之 FutureTask 的基本使用
  14. 普元EOS之性能调优
  15. visio业务流程图教学_visio业务流程图怎么画
  16. 面向未来的100项颠覆性创新技术!欧盟重磅报告
  17. 循环(概念、for循环、while循环 、do-while循环)
  18. android字体加横线
  19. 栈的压入序列和弹出序列是否匹配
  20. Codeforces Round #514 (Div. 2)-D. Nature Reserve

热门文章

  1. OpenCV基本函数学习
  2. Ubuntu下面steam的安装
  3. Actor模式理解与使用
  4. 老旧的计算机系统英语,old bird是“老鸟”?你的英语让老外哭笑不得!
  5. java神雕侠侣1古墓情缘游戏攻略_《神雕侠侣》手游古墓秘境1到5关详细攻略
  6. html——表单元素及个人简历实现
  7. 2022-2028全球与中国呼吸系统疾病治疗市场现状及未来发展趋势
  8. 小程序开发——页面背景色设置
  9. CentOS 查看登陆成功和登陆失败日志
  10. mysql管理器打不开_我安装好了MySQL.. 控制台却打不开... 有什么办法打开MySQL的控制台...