⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eraserthreaddemo.java

📁 金旭亮的java教案
💻 JAVA
字号:
import java.util.Scanner;

public class EraserThreadDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        while(true) {
            System.out.print("输入名称:");
            String name = scanner.next();

            System.out.print("输入密码:");
            // 启动 Eraser 线程
            EraserThread eraserThread = new EraserThread('#');
            eraserThread.start();
            
            String password = scanner.next();
            //eraserThread.setActive(false);  //结束线程

            if("jxl".equals(name) &&
               "123456".equals(password)) {
                System.out.println("您好,jxl.");
                break;
            }
            else {
                System.out.printf("%s,名称或密码错误,请重新输入!%n", name);
            }
        }

    }
}

class EraserThread extends Thread {
    private boolean active;
    private String mask;
    
    public EraserThread() {
        this('*');
    }

    public EraserThread(char maskChar) {
        active = true;
        mask = "\010"+maskChar; //加入一个回退标志
    }

   // 要停止线程时可设定为false
    public void setActive(boolean active) {
        this.active = active;
    }

    public boolean isActive() {
        return active;
    }

    // 重新定义run()方法
    public void run () {
        while(isActive()) {
            System.out.print(mask); //打印加密字符
	     try {
                // 暂停目前的线程50毫秒
	            Thread.currentThread().sleep(50);
             } 
             catch(InterruptedException e) {
                 e.printStackTrace();
             }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -