package 清屏; import java.awt.AWTException; import java.awt.Robot; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; public class 清屏 { public static void main(String[] args) throws AWTException { System.out.println("5554454544545"); clear(); } public static void clear() throws AWTException { Robot r = new Robot(); r.mousePress(InputEvent.BUTTON3_MASK); // 按下鼠标右键 r.mouseRelease(InputEvent.BUTTON3_MASK); // 释放鼠标右键 r.keyPress(KeyEvent.VK_CONTROL); // 按下Ctrl键 r.keyPress(KeyEvent.VK_R); // 按下R键 r.keyRelease(KeyEvent.VK_R); // 释放R键 r.keyRelease(KeyEvent.VK_CONTROL); // 释放Ctrl键 r.delay(100); } }
并且这个功能对应了一个快捷键,Ctrl + R
,但是只有在右键菜单显示的情况下按下这个快捷键才有效。
于是,问题的入手点就在这个快捷键,能否让代码帮我们在控制台界面自动打开右键菜单并按下Ctrl + R
,从而实现控制台清屏。
答案自然是肯定的,Java提供了一个用来产生本机输入事件的机器人类 :java.awt.Robot,这个类有一系列关于鼠标键盘的方法可以来调用。查了下这个类的一些方法,最终实现了上面所说的功能。来看代码: