java swing 登陆_Java Swing(纯个人代码改善版):登录界面和登录后界面

先出纯个人代码改善版,以后会有空的时候可能会出配套的个人理解解析版的专栏和视频,以后可能会出人工智能,游戏制作,有功能的机械制造等的专栏视频等。

写出无bug的代码,给代码找错误,修改和理解代码不容易,大家可以常照着我写了好多遍的代码打很多遍,并且看我的理解等就会写和理解类似的代码了,记得三连和关注啊!

6816ba808b0e85785bd6f36e94f10410.png

3548c900e12bd925b53ed0c86783e18a.png

package swing;

public class mains {

public static void main(String[] args) {

new swing();

}

}

315864002084c448d1a00993dce72eb8.png

368c66f6d4814245c5ff4dd28b874d55.png

package swing;

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

import javax.swing.JRadioButton;

import javax.swing.JTextArea;

import javax.swing.JTextField;

class shijian implements ActionListener, FocusListener {

static swing d = null;

/* 下面的是构造方法,无void */

public shijian(swing dl) {

d = dl;

}

@Override

/*

* actionperformed方法是ActionListener监听事件中的一个重写方法,

* 如果要求按钮执行一些动作,可以在这个方法中添加、修改、删除以及判断。

*/

public void actionPerformed(ActionEvent arg0) {

/* 当按钮中字符为"登录"时,就执行equals("登录")中的内容 */

if (arg0.getActionCommand().equals("已经注册过,可直接登录")) {

/* trim()函数移除字符串两侧的空白字符或其他预定义字符。 */

String uname = swing.uname.getText().trim();

String pwd = swing.pwd.getText().trim();

if (uname.isEmpty() || pwd.isEmpty()) {

JOptionPane.showMessageDialog(null, "用户名或密码为空");

} else {

if (uname.equals(yonghu.uname) && pwd.equals(yonghu.pwd)) {

JOptionPane.showMessageDialog(null, "用户名和密码输入正确,可以登录");

new chenggongjiemian();

d.setVisible(false);

} else {

JOptionPane.showMessageDialog(null, "用户名或密码输入错误");

}

}

}

else if (arg0.getActionCommand().equals("没注册过,先注册")) {

JOptionPane.showMessageDialog(null, "没注册过,先注册");

} else {

int o = JOptionPane.showConfirmDialog(null, "是否确认关闭页面");

if (o == 0) {

System.exit(0);

}

}

}

/*

* arg是java主函数的入口参数,它是一个字符串数组变量 void focusGained(FocusEvent e):当获得焦点时发生.

* void focusLost(FocusEvent e):当失去焦点时发生.

*/

@Override

public void focusGained(FocusEvent arg0) {

if (arg0.getSource() == d.uname) {

System.out.println("选中了用户名框");

} else if (arg0.getSource() == d.pwd) {

System.out.println("选中了密码框");

} else if (arg0.getSource() == d.pwd1) {

System.out.println("选中了确认密码框");

}

}

@Override

public void focusLost(FocusEvent arg0) {

if (arg0.getSource() == d.uname) {

/* getSource获得所选 */

String uname = d.uname.getText();

if (uname.isEmpty()) {

d.lb_uname_panduan.setText("请输入用户名");

d.lb_uname_panduan.setForeground(Color.red);

} else {

if (uname.length() > 12 || uname.length() == 0) {

d.lb_uname_panduan.setText("用户名格式输入错误");

d.lb_uname_panduan.setForeground(Color.red);

} else {

d.lb_uname_panduan.setText("用户名输入正确");

d.lb_uname_panduan.setForeground(Color.green);

}

}

} else if (arg0.getSource() == d.pwd) {

String pwd = d.pwd.getText().trim();

if (pwd.length() < 6 || pwd.length() == 0) {

d.lb_pwd_panduan.setText("密码格式输入错误,不可少于6位");

d.lb_pwd_panduan.setForeground(Color.red);

} else {

d.lb_pwd_panduan.setText("输入正确");

d.lb_pwd_panduan.setForeground(Color.green);

}

} else if (arg0.getSource() == d.pwd1) {/*做判断两次密码是否一致的判断

先获取第一次输入的密码,再获取第二次输入的密码,然后比较一下两次密码是否一致不就完啦*/

String pwd1 = d.pwd.getText().trim();// 获取第一次的密码

String pwd2 = d.pwd1.getText().trim();// 获取第二次输入的密码.

if (pwd1.equals(pwd2)) {

d.lb_pwd_queren.setText("输入正确");

d.lb_pwd_queren.setForeground(Color.GREEN);

} else {

d.lb_pwd_queren.setText("两次密码输入不一致");

d.lb_pwd_queren.setForeground(Color.red);

}

}

}

}

public class swing extends JFrame {

static JCheckBox aihao1, aihao2, aihao3 = null;

static JComboBox com1 = null;

static JButton DengLuAnNu, QuXiaoAnNu, ZhuCeMiMaAnNu = null;

static JTextArea jt1 = null;

static JLabel lb_uname, lb_qrmima, lb_sex, lb_aihao, lb_address,

lb_jieshao = null;

static JLabel lb_uname_panduan, lb_pwd_panduan, lb_pwd,

lb_pwd_queren = null;

static JPasswordField pwd, pwd1 = null;

static JRadioButton sex_man, sex_woman = null;

static JTextField uname;

shijian sj = new shijian(this);

/* this就是指对象自己,表示自己,在那个对象的成员函数里出现就表示哪个对象 */

public swing() {

/* 总界面设置 */

this.setTitle("登录界面");

this.setSize(700, 600);

this.setLocationRelativeTo(null);

this.setLayout(null);

/* 用户名 */

lb_uname = new JLabel("用户名");

this.add(lb_uname);

lb_uname.setBounds(100, 100, 40, 30);

/* setBounds(x,y,size_x,size_y) */

uname = new JTextField(20);

uname.setBounds(180, 100, 140, 30);

uname.addFocusListener(sj);

this.add(uname);

lb_uname_panduan = new JLabel("用户名长度不能大于12位");

lb_uname_panduan.setForeground(Color.red);

lb_uname_panduan.setBounds(330, 100, 250, 30);

this.add(lb_uname_panduan);

/* 密 码 */

lb_pwd = new JLabel("密 码");

this.add(lb_pwd);

lb_pwd.setBounds(100, 140, 40, 30);

pwd = new JPasswordField();

pwd.setBounds(180, 140, 140, 30);

pwd.addFocusListener(sj);

this.add(pwd);

lb_pwd_panduan = new JLabel("请输入密 码,不可少与6位");

lb_pwd_panduan.setForeground(Color.red);

lb_pwd_panduan.setBounds(330, 140, 240, 30);

this.add(lb_pwd_panduan);

// lb_pwd_panduan = new JLabel("请确认密码");

// lb_pwd_panduan.setForeground(Color.red);

// lb_pwd_panduan.setBounds(330, 140, 150, 30);

// this.add(lb_pwd_panduan);

/* 确认密码 */

lb_qrmima = new JLabel("确认密码");

lb_qrmima.setBounds(100, 180, 70, 30);

this.add(lb_qrmima);

pwd1 = new JPasswordField(20);

pwd1.setBounds(180, 180, 140, 30);

// pwd1.addFocusListener(sj);

pwd1.addFocusListener(new shijian(this));

this.add(pwd1);

lb_pwd_queren = new JLabel("请输入和上一 次一致的密码");

lb_pwd_queren.setForeground(Color.red);

lb_pwd_queren.setBounds(330, 180, 180, 30);

this.add(lb_pwd_queren);

lb_pwd_queren.addFocusListener(sj);

lb_sex = new JLabel("性别");

lb_sex.setBounds(100, 210, 70, 30);

this.add(lb_sex);

sex_woman = new JRadioButton("女");

sex_man = new JRadioButton("男", true);

sex_man.setBounds(180, 210, 70, 30);

sex_woman.setBounds(260, 210, 70, 30);

this.add(sex_man);

this.add(sex_woman);

ButtonGroup bg1 = new ButtonGroup();

bg1.add(sex_man);

bg1.add(sex_woman);

lb_aihao = new JLabel("爱好");

lb_aihao.setBounds(100, 250, 70, 30);

this.add(lb_aihao);

aihao1 = new JCheckBox("唱");

aihao2 = new JCheckBox("跳");

aihao3 = new JCheckBox("rap");

aihao1.setBounds(180, 250, 70, 30);

aihao2.setBounds(250, 250, 70, 30);

aihao3.setBounds(320, 250, 70, 30);

this.add(aihao1);

this.add(aihao2);

this.add(aihao3);

lb_address = new JLabel("家庭地址");

lb_address.setBounds(100, 290, 70, 30);

this.add(lb_address);

com1 = new JComboBox();

com1.addItem("请选择家庭地址");

com1.addItem("北京");

com1.addItem("上海");

com1.addItem("广州");

com1.setBounds(180, 290, 140, 30);

this.add(com1);

lb_jieshao = new JLabel("个人介绍");

lb_jieshao.setBounds(100, 330, 70, 30);

this.add(lb_jieshao);

jt1 = new JTextArea();

jt1.setColumns(8);

jt1.setRows(4);

jt1.setBounds(180, 330, 140, 40);

jt1.setLineWrap(true);

this.add(jt1);

JButton btn_dl = new JButton("已经注册过,可直接登录");

btn_dl.setBounds(20, 400, 180, 35);

QuXiaoAnNu = new JButton("取消");

ZhuCeMiMaAnNu = new JButton("没注册过,先注册");

ZhuCeMiMaAnNu.setBounds(368, 400, 180, 35);

QuXiaoAnNu.setBounds(240, 400, 80, 35);

btn_dl.addActionListener(sj);

ZhuCeMiMaAnNu.addActionListener(sj);

QuXiaoAnNu.addActionListener(sj);

this.add(btn_dl);

this.add(ZhuCeMiMaAnNu);

this.add(QuXiaoAnNu);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

}

class yonghu {

static String pwd = "pwdpwd";

static String uname = "1";

}

f9b39405bffd23cd5a0685b32e751732.png

ed0f1c506ff595da4383d59312a71696.png

package swing;

import javax.swing.JFrame;

public class chenggongjiemian extends JFrame {

public chenggongjiemian() {

this.setTitle("登录后的界面");

this.setLayout(null);

this.setSize(800, 800);

this.setLocationRelativeTo(null);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

}bd0035b0714ec3d03ac415ad4d2a55fa.png

完整效果展示:

a5313527393e7e73ba3f8e50b9513ab8.png

出错时要有提醒:dde722bb6aa4e240ab922a59be4d4d21.png

24aef21eb81820a26048450233c07710.png

cff20769d8738b60f5d5072d947e7d8c.png

618fed9577fdd9600140e31f4365c5c4.png

873c9a0baf9cabf5d04629c1670c3789.png

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的 Java Swing 登录界面,其中包括一个“注册”按钮,可以跳转到注册界面代码如下: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Login extends JFrame implements ActionListener { private JLabel titleLabel, usernameLabel, passwordLabel; private JTextField usernameText; private JPasswordField passwordText; private JButton loginButton, registerButton; public Login() { super("登录"); // 标题 titleLabel = new JLabel("用户登录", JLabel.CENTER); titleLabel.setFont(new Font("宋体", Font.BOLD, 18)); titleLabel.setForeground(Color.blue); // 用户名 usernameLabel = new JLabel("用户名:", JLabel.RIGHT); usernameText = new JTextField(20); // 密码 passwordLabel = new JLabel("密码:", JLabel.RIGHT); passwordText = new JPasswordField(20); // 登录按钮 loginButton = new JButton("登录"); loginButton.addActionListener(this); // 注册按钮 registerButton = new JButton("注册"); registerButton.addActionListener(this); // 添加组件到容器中 Container container = getContentPane(); container.setLayout(new GridLayout(4, 1)); container.add(titleLabel); JPanel panel1 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel1.add(usernameLabel); panel1.add(usernameText); container.add(panel1); JPanel panel2 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel2.add(passwordLabel); panel2.add(passwordText); container.add(panel2); JPanel panel3 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel3.add(loginButton); panel3.add(registerButton); container.add(panel3); // 设置窗口大小、可见性和关闭方式 setSize(300, 200); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { if (e.getSource() == loginButton) { // 处理登录逻辑 String username = usernameText.getText(); String password = String.valueOf(passwordText.getPassword()); System.out.println("用户名:" + username); System.out.println("密码:" + password); } else if (e.getSource() == registerButton) { // 跳转到注册界面 new Register(); dispose(); } } public static void main(String[] args) { new Login(); } } class Register extends JFrame implements ActionListener { private JLabel titleLabel, usernameLabel, passwordLabel; private JTextField usernameText; private JPasswordField passwordText; private JButton registerButton; public Register() { super("注册"); // 标题 titleLabel = new JLabel("用户注册", JLabel.CENTER); titleLabel.setFont(new Font("宋体", Font.BOLD, 18)); titleLabel.setForeground(Color.blue); // 用户名 usernameLabel = new JLabel("用户名:", JLabel.RIGHT); usernameText = new JTextField(20); // 密码 passwordLabel = new JLabel("密码:", JLabel.RIGHT); passwordText = new JPasswordField(20); // 注册按钮 registerButton = new JButton("注册"); registerButton.addActionListener(this); // 添加组件到容器中 Container container = getContentPane(); container.setLayout(new GridLayout(4, 1)); container.add(titleLabel); JPanel panel1 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel1.add(usernameLabel); panel1.add(usernameText); container.add(panel1); JPanel panel2 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel2.add(passwordLabel); panel2.add(passwordText); container.add(panel2); JPanel panel3 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel3.add(registerButton); container.add(panel3); // 设置窗口大小、可见性和关闭方式 setSize(300, 200); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { if (e.getSource() == registerButton) { // 处理注册逻辑 String username = usernameText.getText(); String password = String.valueOf(passwordText.getPassword()); System.out.println("用户名:" + username); System.out.println("密码:" + password); } } } ``` 这个程序包含两个类:`Login` 和 `Register`。`Login` 类是登录界面,`Register` 类是注册界面。当用户点击登录按钮时,程序会打印出用户名和密码;当用户点击注册按钮时,程序会关闭登录界面打开注册界面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值