Eclipse控制台实现清屏的方法

【Java】Eclipse控制台清屏方法

最近在跟着教学课程学习Java语言,老师之前是做职业程序猿的。

最近布置了一个简单的课后作业,就是在控制台去模仿ATM机的界面,并实现一些基本的业务逻辑。

在控制台用System.out.println();去模仿图形界面,肯定要涉及到控制台的清屏吧,老师也有提到。本以为Java有直接清屏的方法可以调用的,结果查了下然后很郁闷,Java并没有控制台清屏的方法去调用。网上搜到的一些解决方案针对的是Windows操作系统的cmd控制台的,对于我所使用的Eclipse开发环境的控制台是无效的。

然后发现了Eclipse控制台手动清屏的方法,就是在控制台界面鼠标右击,右键菜单有一个 清除 的选项,如下图:

Eclipse控制台实现清屏的方法_第1张图片

并且这个功能对应了一个快捷键,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);       

    }

相关方法的功能已经在注释中给出了,所以只要在程序的适当位置去调用便可实现清屏功能。


如需转载请注明来源。

你可能感兴趣的:(Java,Eclipse)