首页 > 解决方案 > 我如何让密码字段等于密码 123456 并让按钮“确定”在 java 中使用它

问题描述

我想当我点击“编辑、添加和更新程序”按钮时,密码字段出现,“确定”按钮出现。ok 按钮应该调用 displaytable() 方法,该方法将显示一个可编辑的表格供用户更改。我如何获得密码才能工作

JButton passcode = new JButton("Edit, add or update programme");//creates button to display editable table
    passcode.setBounds(50,200,95,30);
        passcode.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) { //here
                Char[] password = "123456";
                JButton button = new JButton("OK");
                JPasswordField pf = new JPasswordField();
                button.addActionListener(e1 -> {

                    if(JPasswordField.getPassword.equals(password){
                        panel1.add(pf);
                        panel1.add(button); //TO HERE IM HAVING A PROBLEM WITH
                    }
                });
            }
        });

标签: javaswingjbuttonjpasswordfield

解决方案


更好的设计是最初添加这些组件但禁用它们 (setEnabled(false))。无论如何,要在您的场景中回答您的问题,您应该在 UI 线程上运行代码,并在添加新组件后重新验证和重新绘制

                if(JPasswordField.getPassword().equals(password){
                   SwingUtilities.invokeLater(new Runnable() {
                      public void run() {
                        panel1.add(pf);
                        panel1.add(button); //TO HERE IM HAVING A PROBLEM WITH
                        panel1.validate();
                        panel1.repaint();
                     }
                  });
                }

推荐阅读