【Java】Eclipse控制台清屏方法
最近在跟着教学课程学习Java语言,老师之前是做职业程序猿的。
最近布置了一个简单的课后作业,就是在控制台去模仿ATM机的界面,并实现一些基本的业务逻辑。
在控制台用System.out.println();
去模仿图形界面,肯定要涉及到控制台的清屏吧,老师也有提到。本以为Java有直接清屏的方法可以调用的,结果查了下然后很郁闷,Java并没有控制台清屏的方法去调用。网上搜到的一些解决方案针对的是Windows操作系统的cmd控制台的,对于我所使用的Eclipse开发环境的控制台是无效的。
然后发现了Eclipse控制台手动清屏的方法,就是在控制台界面鼠标右击,右键菜单有一个 清除 的选项,如下图:
并且这个功能对应了一个快捷键,Ctrl + R
,但是只有在右键菜单显示的情况下按下这个快捷键才有效。
于是,问题的入手点就在这个快捷键,能否让代码帮我们在控制台界面自动打开右键菜单并按下Ctrl + R
,从而实现控制台清屏。
答案自然是肯定的,Java提供了一个用来产生本机输入事件的机器人类 :java.awt.Robot,这个类有一系列关于鼠标键盘的方法可以来调用。查了下这个类的一些方法,最终实现了上面所说的功能。来看代码:
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);
}
相关方法的功能已经在注释中给出了,所以只要在程序的适当位置去调用便可实现清屏功能。
如需转载请注明来源。