JAVA的一个小问题求解答

img


看了好长时间都没有看懂
快帮帮我吧,已经看了三个多小时都没有看懂

这个很简单呀
首先你得会使用swing
这个:import javax.swing.*;
1、先把界面写好
2、确定按钮写一个事件,将两个输入框的内容获取进行比较返回对应的信息

直接获取到两个秘密,然后进行对比就行了呀

这个难点在 swing,好多都不用不会不学这个了,剩下的就是两个字符串的equals

大概意思就是第一个框跟第二个框点击确定之后进行比对,如果一致密码正确,如果不一致密码错误

这个就是登录密码的两次一致性验证呀

就是判断两个文本框的内容相不相等,我记得网上有现成的DEMO,大作业吧这个

img

1)使用idea工具吧
2)在一个包下新建一个GUI Form

img

3)布局窗体,将右边的相关的组件拖过来就好

img

4)给btn按钮创建监听

img

img

5)创建完监听后,转到login.java,login方法就是刚才创建的的单击监听事件,然后完成简单的代码,如下:

public login() {
        btn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if(pf1.getText().equals(pf2.getText())){
                    txt.setText("密码正确!!");
                }else{
                    txt.setText("密码错误!!!");
                }
            }
        });
    }

6)在login.java中,右键,以创建运行代码

img

img

这样就自动产生代码:

public static void main(String[] args) {
        JFrame frame = new JFrame("login");
        frame.setContentPane(new login().root);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }

7)运行、运行结果

在login.java中点击右键:

img


运行结果:

img

img

8)所有的代码



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

/**
 * @author pcj
 * @date 2022/5/13
 * @note
 */
public class login {
    private JTextField pf1;
    private JTextField pf2;
    private JButton btn;
    private JTextField txt;
    private JLabel lb1;
    private JLabel lb2;
    private JPanel root;

    public login() {
        btn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if(pf1.getText().equals(pf2.getText())){
                    txt.setText("密码正确!!");
                }else{
                    txt.setText("密码错误!!!");
                }
            }
        });
    }

public static void main(String[] args) {
        JFrame frame = new JFrame("login");
        frame.setContentPane(new login().root);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

最后说明:所有不明白的设置,就使用默认值!

img

import java.awt.;
import java.awt.event.
;
import javax.swing.;
import javax.swing.event.
;

public class CheckPassword {
static class Window extends JFrame {
public Window() {
JLabel jlPassword = new JLabel("请输入密码:");
jlPassword.setAlignmentX(0.5f);
JPasswordField jpfPassword = new JPasswordField();
jpfPassword.setAlignmentX(0.5f);
JLabel jlRepassword = new JLabel("请再次输入密码:");
jlRepassword.setAlignmentX(0.5f);
JPasswordField jpfRepassword = new JPasswordField();
jpfRepassword.setAlignmentX(0.5f);
JTextField jtfMessage = new JTextField("请验证密码的正确性!");
jtfMessage.setAlignmentX(0.5f);
JButton jbCheck = new JButton("确定");
jbCheck.setAlignmentX(0.5f);
jbCheck.addActionListener((aeObject)->{
char[] acPassword = jpfPassword.getPassword(), acRepassword = jpfRepassword.getPassword();
int i, iLength = acPassword.length < acRepassword.length ? acPassword.length : acRepassword.length;
for(i = 0; i < iLength; ++i)
{
if(acPassword[i] != acRepassword[i])
{
break;
}
}
if(i == iLength)
{
jtfMessage.setText("两次密码一致,正确!");
}
else
{
jtfMessage.setText("两次密码不一致,非正确!");
}
});
add(jlPassword);
add(jpfPassword);
add(jlRepassword);
add(jpfRepassword);
add(jbCheck);
add(jtfMessage);
setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS));
setTitle("Java中的组件与事件处理");
setBackground(Color.white);
setSize(320, 180);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
public static void main(String[] args) throws Exception {
new Window();
}
}
这是我的答案 望采纳

望采纳

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JPasswordFieldDemo extends JFrame 
{
    JLabel lb1;
    JPasswordField pf1;
    //密码输入框1
    JLabel lb2;
    JPasswordField pf2;
    //密码输入框2
    JButton btn;
    //确认按钮
    JTextField txt;
    //信息输出
    public JPasswordFieldDemo() 
    {
        //构造函数
        super("密码验证");
        //调用父类构造函数
        Container container=getContentPane();
        //得到容器
        container.setLayout(new GridLayout(6, 1, 1, 1,1,1,1));
        //设置布局管理器
        lb1= new JLabel("请输入密码:");
        pf1=new JPasswordField(16);
        //初始化密码输入框,宽度为16列
        lb2= new JLabel("请再次输入密码:");
        pf2=new JPasswordField(16);
        //初始化密码输入框,宽度为16列
        btn=new JButton("确定");
        //初始化确定按钮
        txt=new JTextField(16);
        //初始化输出框
        btn.addActionListener( //确定按钮事件处理
        new ActionListener() 
        {
            public void actionPerformed(ActionEvent evt) 
            {
                char[] pw1=pf1.getPassword();
                //得到密码1
                char[] pw2=pf2.getPassword();
                //得到密码2
                if(pw1==pw2)
                txt.setText("密码正确!!!"); else
                txt.setText("密码错误!!!");
            }
        }
        );
        container.add(lb1);
        //增加组件
        container.add(pf1);
        container.add(lb2);
        container.add(pf2);
        container.add(btn);
        container.add(txt);
        setResizable(false);
        //不允许用户改变窗口大小
        setSize(300,120);
        //设置窗口尺寸
        setVisible(true);
        //设置窗口可视
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //关闭窗口时退出程序
    }
    public static void main(String[] args) 
    {
        new JPasswordFieldDemo();
    }
}

将代码发出来,看看你写的是否有问题,从而找到问题给出解决方法