java编程中我想用显示密码把密码显示出来了然而登录却有错 求解 急用 (我想了一天实在没法了)

问题描述

java编程中我想用显示密码把密码显示出来了然而登录却有错 求解 急用 (我想了一天实在没法了)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class weixin extends JFrame implements ActionListener {

JPanel panmain;                  //面板
JLabel lblname,lblpassword,lblphoto;      //标签
JLabel first,second,three;
JButton btnlogin;                //按钮
JTextField txtname;             // 单行文本框
JTextField txtpassword;          //单行文本框
JPasswordField pwdpassword;      //密码框
JCheckBox chkbold;               //复选框
Dimension dsSize;
Toolkit toolkit=Toolkit.getDefaultToolkit();
public weixin(){
    super("登录微信");
    panmain =new JPanel();                  //实例化面板
    this.getContentPane().add(panmain);

    lblname=new JLabel("账号:");
    txtname=new JTextField(18);          //实例化长度为18的文本框对象
    lblpassword=new JLabel("密码:");
    txtpassword=new JTextField(18);

    pwdpassword=new JPasswordField(18);  //实例化长度为18的文本框对象
    chkbold=new JCheckBox("显示密码");
    btnlogin=new JButton("登录");
    first=new JLabel("忘记密码?");
    second=new JLabel("创建新账号");
    three=new JLabel("切换接入点?");

   // Font fontstr=new Font("宋体",Font.PLAIN,12);
  //  lblname.setFont(fontstr);

  //  lblname.setForeground(Color.GREEN);
   // lblpassword.setForeground(Color.GREEN);
    btnlogin.setBackground(Color.GREEN);     //设置按钮颜色为绿色

    panmain.setLayout(null);                  //空布局
    lblname.setBounds(6,50,400,25);           //对‘账号’实行空布局
    txtname.setBounds(40,50,210,25);          // 对文本框实行空布局
    lblpassword.setBounds(6,80,500,25);       //对’密码‘实行空布局
    pwdpassword.setBounds(40,80,210,25);      //对密码文本框实行空布局
    txtpassword.setBounds(40,80,210,25);
    chkbold.setBounds(5,116,80,25);           //对复选框实行空布局
    btnlogin.setBounds(150,120,99,25);        //对按钮实行空布局

    first.setBounds(6,160,600,25);
    second.setBounds(6,190,700,25);
    three.setBounds(6,220,800,25);

  //pwdpassword=new JPasswordField();
  //panmain.setToolTipText("登录到服务器");

   // lblphoto=new JLabel();    //添加主面板背景(方法1)
   //  Image image1=new ImageIcon("./src/weixin1.jpg").getImage();
   // lblphoto.setIcon(new ImageIcon(image1));

    //panmain.setBackground(Color.black);
      Icon logol=new ImageIcon("./src/weixin1.jpg");   // //添加主面板背景(方法2)
      lblphoto=new JLabel(logol);
      lblphoto.setBounds(0,0,266,394);
      panmain.add(lblphoto);
      chkbold.addActionListener(this);
      txtpassword.addActionListener(this);
      // panmain.add(lblname);           //添加标签‘账号’到主面板
       // panmain.add(lblpassword);      //添加标签‘密码’到主面板
        //panmain.add(txtname);          //添加单行文本框到主面板
        //panmain.add(pwdpassword);      //添加密码框到主面板
        //panmain.add(chkbold);         //添加复选框到主面板
        //panmain.add(btnlogin);        //添加按钮到主面板

  // lblname.setFont (fontstr);
    lblphoto.add(lblname);
    lblphoto.add(lblpassword);
    lblphoto.add(txtname);
    lblphoto.add(pwdpassword);
    lblphoto.add(chkbold);
    lblphoto.add(btnlogin);
    lblphoto.add(first);
    lblphoto.add(second);
    lblphoto.add(three);
    lblphoto.add(txtpassword);

    setContentPane(lblphoto);
    setSize(266,400);
    setVisible(true);
    setResizable(false);

    dsSize=toolkit.getScreenSize();
    //this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    setLocation(dsSize.width/2-this.getWidth()/2,
    dsSize.height/2-this.getHeight()/2);
    Image img=toolkit.getImage("./src/1.jpg");
    setIconImage(img);

            }
public static void main(String args[]) {
   new weixin();

}
   public void actionPerformed1(ActionEvent ae)
            {
            if(ae.getSource()==btnlogin){
                    if(pwdpassword.getText().equals("admin")) && (pwdpassword.getText().equals("admin")))
                JOptionPane.showMessageDialog(null,"用户登录成功");
                    else
                        JOptionPane.showMessageDialog(null,"用户名或密码错误");
                  }
                }

        }

解决方案

JPasswordField和JTextField叠放,隐藏前者显示后者

解决方案二:

一般是 两个 输入框 一个输入框不显示秘密 一个输入框 显示秘密 点击按钮之后 这两个框 切换显示 并交换数据

解决方案三:

勾选显示密码 调用setEchoChar(0)
不勾选 调用 setEchoChar('*')

解决方案四:

两个问题,
1、你实现了ActionListener接口,但是没有写实现方法;
2、在实现ActionListener方法中增加单选框的监听实践即可。
下面的代码实现了,输入的密码可以明文显示,明文密码显示 时做的更改可以同步到密码框。

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

public class weixin extends JFrame implements ActionListener {
    JPanel panmain; // 面板
    JLabel lblname, lblpassword, lblphoto; // 标签
    JLabel first, second, three;
    JButton btnlogin; // 按钮
    JTextField txtname; // 单行文本框
    JTextField txtpassword; // 单行文本框
    JPasswordField pwdpassword; // 密码框
    JCheckBox chkbold; // 复选框
    Dimension dsSize;
    Toolkit toolkit = Toolkit.getDefaultToolkit();

    public weixin() {
        super("登录微信");
        panmain = new JPanel(); // 实例化面板
        this.getContentPane().add(panmain);

        lblname = new JLabel("账号:");
        txtname = new JTextField(18); // 实例化长度为18的文本框对象
        lblpassword = new JLabel("密码:");
        txtpassword = new JTextField(18);

        pwdpassword = new JPasswordField(18); // 实例化长度为18的文本框对象
        chkbold = new JCheckBox("显示密码");
        btnlogin = new JButton("登录");
        first = new JLabel("忘记密码?");
        second = new JLabel("创建新账号");
        three = new JLabel("切换接入点?");

        // Font fontstr=new Font("宋体",Font.PLAIN,12);
        // lblname.setFont(fontstr);

        // lblname.setForeground(Color.GREEN);
        // lblpassword.setForeground(Color.GREEN);
        btnlogin.setBackground(Color.GREEN); // 设置按钮颜色为绿色

        panmain.setLayout(null); // 空布局
        lblname.setBounds(6, 50, 400, 25); // 对‘账号’实行空布局
        txtname.setBounds(40, 50, 210, 25); // 对文本框实行空布局
        lblpassword.setBounds(6, 80, 500, 25); // 对’密码‘实行空布局
        pwdpassword.setBounds(40, 80, 210, 25); // 对密码文本框实行空布局
        txtpassword.setBounds(40, 80, 210, 25);
        chkbold.setBounds(5, 116, 80, 25); // 对复选框实行空布局
        btnlogin.setBounds(150, 120, 99, 25); // 对按钮实行空布局

        first.setBounds(6, 160, 600, 25);
        second.setBounds(6, 190, 700, 25);
        three.setBounds(6, 220, 800, 25);

        // pwdpassword=new JPasswordField();
        // panmain.setToolTipText("登录到服务器");

        // lblphoto=new JLabel(); //添加主面板背景(方法1)
        // Image image1=new ImageIcon("./src/weixin1.jpg").getImage();
        // lblphoto.setIcon(new ImageIcon(image1));

        // panmain.setBackground(Color.black);
        Icon logol = new ImageIcon("./src/weixin1.jpg"); // //添加主面板背景(方法2)
        lblphoto = new JLabel(logol);
        lblphoto.setBounds(0, 0, 266, 394);
        panmain.add(lblphoto);
        chkbold.addActionListener(this);
        txtpassword.addActionListener(this);
        // panmain.add(lblname); //添加标签‘账号’到主面板
        // panmain.add(lblpassword); //添加标签‘密码’到主面板
        // panmain.add(txtname); //添加单行文本框到主面板
        // panmain.add(pwdpassword); //添加密码框到主面板
        // panmain.add(chkbold); //添加复选框到主面板
        // panmain.add(btnlogin); //添加按钮到主面板

        // lblname.setFont (fontstr);
        lblphoto.add(lblname);
        lblphoto.add(lblpassword);
        lblphoto.add(txtname);
        lblphoto.add(pwdpassword);
        lblphoto.add(chkbold);
        lblphoto.add(btnlogin);
        lblphoto.add(first);
        lblphoto.add(second);
        lblphoto.add(three);
        lblphoto.add(txtpassword);

        setContentPane(lblphoto);
        setSize(266, 400);
        setVisible(true);
        setResizable(false);

        dsSize = toolkit.getScreenSize();
        // this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocation(dsSize.width / 2 - this.getWidth() / 2, dsSize.height / 2
                - this.getHeight() / 2);
        Image img = toolkit.getImage("./src/1.jpg");
        setIconImage(img);

    }

    public static void main(String args[]) {
        new weixin();

    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if (e.getSource() == chkbold) {
            if (chkbold.isSelected()) {
                System.out.println("ssdds");
                String password = new String(pwdpassword.getPassword());
                txtpassword.setText(password);
                pwdpassword.setVisible(false);
                txtpassword.setVisible(true);
            } else {
                String password = txtpassword.getText();
                pwdpassword.setText(password);
                pwdpassword.setVisible(true);
                txtpassword.setVisible(false);
            }
        }
    }
}
时间: 2024-10-24 17:02:23

java编程中我想用显示密码把密码显示出来了然而登录却有错 求解 急用 (我想了一天实在没法了)的相关文章

仔细触摸Java编程中的“文档”和“包”

编程 什么是包 Java中的包(Package)其实指的就是目录,它是为了更好地管理Java类(Class)和接口(Interface).Java语言的包可以被另一个Java开发包所使用.如果我们要引用某个包中的类,用import关键字来标明即可.比如: import java.util. date=new Date  提示:import java.util.表示java.util中的所有公有类和接口被引入到当前包.这里的匹配符可以调入多个类名. 常用的Java标准包 JDK为我

Java编程中异常处理的优劣之道

Java编程中的异常处理是一个很常见的话题了,几乎任何一门介绍性的Java课程都会提到异常处理.不过,我认为很多人其实并没有真正掌握正确处理异常情况的方法和策略,最多也就不过了解个大概,知道点概念.本文就对三种不同程度和质量的Java异常处理进行了讨论,所阐述的处理异常的方式按手法的高下分为: 好,不好和恶劣三种. 同时向你提供了一些解决这些问题的技巧. 首先解释一些java异常处理中必须搞清楚的定义和机制.Java语言规范将自Error类或RuntimeException类衍生出来的任何违例都

Java编程中异常处理的优劣

 Java编程中的异常处理是一个很常见的话题了,几乎任何一门介绍性的Java课程都会提到异常处理.不过,我认为很多人其实没有真正掌握正确处理异常情况的方法和策略,最多也就不过了解个大概,知道概念.我想对三种不同程度和质量的Java异常处理进行了讨论,所阐述的处理异常的方式按手法的高下分为:     好,不好和恶劣三种.     同时提供了一些解决这些问题的技巧.     首先解释一些java异常处理中必须搞清楚的定义和机制.Java语言规范将自Error类或RuntimeException类衍生

hibernate-求助!!!!java编程中框架的使用流程

问题描述 求助!!!!java编程中框架的使用流程 开始接触框架,对框架的概念还不是很理解,我想问问,框架是什么?在编程中使用一个框架的大致流程,比如hibernate如果我想使用hibernate框架,是要先做环境搭建吗? 框架使用的流程都是相似的吗? 解决方案 框架和类库都是别人事先编写好的程序,供你重用的.类库重用的是功能,框架重用的是流程(当然框架一般也附带类库) 用hibernate很简单,导入对应的jar包,根据文档或者例子,配置好配置文件(一般是jdbc连接),在程序中就能使用了.

深入理解Java编程中异常处理的优劣_java

Java编程中的异常处理是一个很常见的话题了,几乎任何一门介绍性的Java课程都会提到异常处理.不过,我认为很多人其实没有真正掌握正确处理异常情况的方法和策略,最多也就不过了解个大概,知道概念.我想对三种不同程度和质量的Java异常处理进行了讨论,所阐述的处理异常的方式按手法的高下分为:好,不好和恶劣三种.同时提供了一些解决这些问题的技巧.首先解释一些java异常处理中必须搞清楚的定义和机制.Java语言规范将自Error类或RuntimeException类衍生出来的任何违例都称作"不可检查&

java代码-关于CSDN英雄会挑战赛 java编程中的一些问题

问题描述 关于CSDN英雄会挑战赛 java编程中的一些问题 各位大神,我在挑战英雄会的题目的时候,在线下运行的没有问题,可是一提交就会提示,"挑战失败:你的程序正常编译,不过运行时发生错误,通常是代码有问题,如除数为零数组上下界溢出等" 我觉得可能是java输入数据时的问题,因为题目要求:输入多行数据,输出多行我是这样写的: Scanner scanner = new Scanner(System.in); ArrayList list = new ArrayList(); do {

java编程,在屏幕上显示一个带标题的窗口,并添加一个按钮

问题描述 java编程,在屏幕上显示一个带标题的窗口,并添加一个按钮 编写程序,在屏幕上显示一个带标题的窗口,并添加一个按钮,当用户单击按钮时,弹出对话框,显示用户单击了按钮. 解决方案 找点Java 的 Swing学习资料,这种界面估计用netbean或idea都可以自动生成. 解决方案二: import java.awt.Frame; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.event.Act

跨越边界: 活动记录和Java编程中特定于域的语言

DSL 是专门解决特定于域问题的语言.通过更接近问题的操作,DSL 可以提供在通用语言中可能找不 到的好处.Java 世界中充满了 DSL.属性文件.Spring 上下文.标注的某种用法以及 Ant 任务,都是 DSL 的示例. 在开始研究其他像 Ruby 这样的语言的时候,我开始理解到 Java 语言目前对于 DSL 还没有良好的把 握.在这篇文章中,将看到 Ruby 使用的四种集成干净的 DSL 的技巧.然后,将看到在 Java 语言中可 能存在的选项是什么. 隐藏语言的世界 虽然您可能不知

内部类-Java编程中A类如何调用B类中M方法里的C类的实例?

问题描述 Java编程中A类如何调用B类中M方法里的C类的实例? import java.awt.*; import java.awt.event.*; public class TestListener{ public static void main(String[] args){ Counter c1 = new Counter("Hello"); c1.CreatButton(); c1.add(c1.button); ----------------------------(