来个82年的程序员 2022-07-04 17:10
浏览 42
已结题

如何解决?(语言-java) 给“登录”按钮添加了事件,JOptionPane.showMessageDialog(参数1,参数2) 想要一个正确的参数1

问题遇到的现象和发生背景:

我创建一个用户登录窗体,继承了JFrame类,给“登录”按钮添加了事件, 结果这个(JOptionPane.showMessageDialog(null,"账号或密码错误,请重新输入");
)中的第一个参数输入“this”运行后报错,输入“null”运行后弹窗关不掉了。

问题相关代码
package Case;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @Description
 * @Author:ZhangShuai
 * @CreateTime:2022/7/4 15:31
 **/
//需求:已知用户名和密码,请用程序模拟用户登录。总共给三次机会,登陆之后,给出相应的提示
/*
* <p>用户登录 用户名 输入框 密码 输入框 登录
* * <p>前端人员给定数据: 1、窗体标题:用户登录
* 2、窗体大小为400*300,其他设置与之前一样
* 3、“用户名”位置大小50,50,50,20
* “用户名”输入框 位置大小150,50,180,20
 * 4、“密码”位置大小50,100,50,20 “密码”输入框 位置大小 150,100,180,20
 * 5、“登录”位置大小20,200,280,20
        **/

public class UserLogin extends JFrame {
  //系统录入一个用户数据
  String username="zhangshuai";
  String password="123456";

  public UserLogin(){
//    创建窗体
    initJframe();
    //打印组件
    paintJframe();

    this.setVisible(true);
  }


  public void initJframe(){
    this.setLayout(null);
    this.setAlwaysOnTop(true);
    this.setTitle("用户登录");
    this.setSize(400,300);
    this.setDefaultCloseOperation(3);
    this.setLocationRelativeTo(null);

  }

  public void paintJframe(){
    JLabel jLabel=new JLabel("用户名");
    jLabel.setBounds(50,50,50,20);
    this.add(jLabel);

    JLabel jLabel1=new JLabel("密码");
    jLabel1.setBounds(50,100,50,20);
    this.add(jLabel1);

    JTextField jTextField=new JTextField();
    jTextField.setBounds(150,50,180,20);
    this.add(jTextField);

    JTextField jTextField1=new JTextField();
    jTextField1.setBounds(150,100,180,20);
    this.add(jTextField1);

    JButton jButton=new JButton("登录");
    jButton.setBounds(20,200,280,20);


    jButton.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
           for (int i = 0; i < 3; i++) {
             if(jTextField.getText().equals(username)&&jTextField1.getText().equals(password)){
//               JOptionPane jOptionPane=new JOptionPane("登陆成功,欢迎回来");
               JOptionPane.showMessageDialog(null,"登陆成功,欢迎回来");
               return;
             }else{
//               JOptionPane jOptionPane=new JOptionPane("账号或密码错误,请重新输入");
               JOptionPane.showMessageDialog(null,"账号或密码错误,请重新输入");
             }
            }
          }
        });
    this.add(jButton);
  }

  public static void main(String[] args) {
    UserLogin userLogin=new UserLogin();
  }
}



我想要达到的结果:

在 JOptionPane.showMessageDialog(null,"登陆成功,欢迎回来")中设置把第一个参数写正确,满足在用户登录成功后提示“登陆成功,欢迎回来”的弹窗

@Bug 终结者

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 7月12日
    • 创建了问题 7月4日

    悬赏问题

    • ¥15 python怎么在已有视频文件后添加新帧
    • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
    • ¥15 fluent里模拟降膜反应的UDF编写
    • ¥15 MYSQL 多表拼接link
    • ¥15 关于某款2.13寸墨水屏的问题
    • ¥15 obsidian的中文层级自动编号
    • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
    • ¥15 神经网络模型一直不能上GPU
    • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
    • ¥20 wpf datagrid单元闪烁效果失灵