Swing 给密码框JPasswordField设置显示和隐藏密码功能

先上个效果图

 

 接下来代码


JPasswordField pwd = new JPasswordField();
pwd.setEchoChar('*');

//添加显示密码图标按钮
JButton viewBtn = new JButton(new ImageIcon(Objects.requireNonNull(this.getClass().getClassLoader().getResource("view.png"))));

//添加隐藏密码图标按钮
JButton viewHideBtn = new JButton(new ImageIcon(Objects.requireNonNull(this.getClass().getClassLoader().getResource("view_hide.png"))));

//将图标按钮添加进密码框里面,需要使用FlatLightLaf主题库
//导入依赖后在所有swing组件的最前面(或者在方法一开始)添加 FlatLightLaf.setup(); 即可,maven地址放最下面了

//如果不需要将按钮添加进框里则无需使用FlatLightLaf,添加相应按钮到面板相应位置即可
pwd.putClientProperty("JTextField.trailingComponent", viewBtn);


//给显示密码图标绑定单击事件
viewBtn.addActionListener(new ActionListener() {
     @Override
     public void actionPerformed(ActionEvent e) {
         pwd.putClientProperty("JTextField.trailingComponent", viewHideBtn);//设置隐藏按钮显示,未使用FlatLightLaf则不需要
         pwd.setEchoChar((char) 0);//设置密码显示
     }
});

//给隐藏密码图标绑定单击事件
viewHideBtn.addActionListener(new ActionListener() {
       @Override
       public void actionPerformed(ActionEvent e) {
           pwd.putClientProperty("JTextField.trailingComponent", viewBtn);//设置显示按钮显示,未使用FlatLightLaf则不需要
           pwd.setEchoChar('*');//设置密码隐藏
       }
});



//注:FlatLightLaf maven地址
<dependency>
	<groupId>com.formdev</groupId>
	<artifactId>flatlaf</artifactId>
	<version>2.4</version>
</dependency>

说明一下,如果没有使用 FlatLightLaf,则在点击按钮后设置另外一个按钮显示或隐藏即可

调用方法

btn.setVisible(false);

可隐藏按钮

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java Swing可以用来创建表单,下面是一个示例: import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class FormExample { public static void main(String[] args) { // 创建 JFrame 实例 JFrame frame = new JFrame("Form Example"); // Setting the width and height of frame frame.setSize(350, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /* 创建面板,这个类似于 HTML 的 div 标签 * 我们可以创建多个面板并在 JFrame 中指定位置 * 面板中我们可以添加文本字段,按钮及其他组件。 */ JPanel panel = new JPanel(); // 添加面板 frame.add(panel); /* * 调用用户定义的方法并添加组件到面板 */ placeComponents(panel); // 设置界面可见 frame.setVisible(true); } private static void placeComponents(JPanel panel) { /* 布局部分我们这边不多做介绍 * 这边设置布局为 null */ panel.setLayout(null); // 创建 JLabel JLabel userLabel = new JLabel("User:"); /* 这个方法定义了组件的位置。 * setBounds(x, y, width, height) * x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。 */ userLabel.setBounds(10,20,80,25); panel.add(userLabel); /* * 创建文本域用于用户输入 */ JTextField userText = new JTextField(20); userText.setBounds(100,20,165,25); panel.add(userText); // 输入密码的文本域 JLabel passwordLabel = new JLabel("Password:"); passwordLabel.setBounds(10,50,80,25); panel.add(passwordLabel); /* *这个类似用于输入的文本域 * 但是输入的信息会以点号代替,用于包含密码的安全性 */ JTextField passwordText = new JTextField(20); passwordText.setBounds(100,50,165,25); panel.add(passwordText); // 创建登录按钮 JButton loginButton = new JButton("login"); loginButton.setBounds(10, 80, 80, 25); panel.add(loginButton); } } ### 回答2: Java Swing是一个用于创建图形用户界面(GUI)的工具包。它提供了一些组件,例如按钮、文本和标签,用于构建用户界面。以下是一个使用Java Swing创建表单的示例。 import javax.swing.*; import java.awt.*; public class FormExample extends JFrame { private JTextField nameField; private JRadioButton maleRadioBtn; private JRadioButton femaleRadioBtn; private JButton submitBtn; public FormExample() { // 设置窗口标题 setTitle("表单示例"); // 创建布局管理器 Container container = getContentPane(); container.setLayout(new GridLayout(4, 2)); // 添加表单组件 JLabel nameLabel = new JLabel("姓名:"); nameField = new JTextField(); container.add(nameLabel); container.add(nameField); JLabel genderLabel = new JLabel("性别:"); maleRadioBtn = new JRadioButton("男"); femaleRadioBtn = new JRadioButton("女"); ButtonGroup genderGroup = new ButtonGroup(); genderGroup.add(maleRadioBtn); genderGroup.add(femaleRadioBtn); container.add(genderLabel); container.add(maleRadioBtn); container.add(new JLabel()); container.add(femaleRadioBtn); submitBtn = new JButton("提交"); container.add(submitBtn); // 设置窗口大小并可见 setSize(400, 200); setVisible(true); } public static void main(String[] args) { // 创建表单示例对象 FormExample formExample = new FormExample(); } } 在这个示例中,我们创建了一个继承自JFrame的FormExample类。在构造函数中,我们设置了窗口标题、创建了布局管理器,并添加了姓名文本、性别单选按钮和提交按钮等组件。 通过调用setSize()方法设置了窗口的大小,并通过调用setVisible()方法使窗口可见。 最后,我们通过调用main()方法创建一个FormExample对象,从而展示示例中创建的表单界面。 ### 回答3: Java Swing是一个用于创建图形用户界面(GUI)的架。它提供了一系列的类和方法,可以轻松地创建各种GUI组件,包括表单。 创建一个简单的表单示例可以通过以下步骤完成: 1. 导入所需的Swing类:首先,我们需要导入Swing包中的类,如JFrame、JLabel、JTextField、JButton等。 2. 创建主窗口:使用JFrame类创建一个主窗口,并设置标题和尺寸。 3. 创建表单组件:在主窗口上,可以使用JLabel和JTextField创建表单标签和输入字段。例如,可以创建一个名为“姓名”的标签和一个用于输入姓名的文本字段。 4. 创建按钮:可以使用JButton类创建一个提交按钮。 5. 添加组件:将表单组件和按钮添加到主窗口中。 6. 设置布局:为了更好地布置表单组件,可以使用布局管理器,如FlowLayout或GridBagLayout。 7. 添加事件监听器:可以为按钮添加一个动作监听器,以便在点击按钮时执行特定的操作,如表单验证或数据保存。 8. 显示窗口:最后,通过调用setVisible(true)方法显示主窗口,使用户能够看到和与表单进行交互。 下面是一个简单的Java Swing表单示例代码: ```java import javax.swing.*; public class FormExample { public static void main(String[] args) { // 创建主窗口 JFrame frame = new JFrame("表单示例"); frame.setSize(300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建表单组件 JLabel nameLabel = new JLabel("姓名:"); JTextField nameField = new JTextField(20); JButton submitButton = new JButton("提交"); // 添加组件 frame.add(nameLabel); frame.add(nameField); frame.add(submitButton); // 设置布局 frame.setLayout(new FlowLayout()); // 添加事件监听器 submitButton.addActionListener(e -> { String name = nameField.getText(); JOptionPane.showMessageDialog(frame, "您输入的姓名是:" + name); }); // 显示窗口 frame.setVisible(true); } } ``` 以上代码演示了如何创建一个简单的Java Swing表单示例。当用户点击提交按钮时,程序将显示一个包含用户输入姓名的消息。可以根据需要修改和扩展此示例,以满足更复杂的表单需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值