Java实现清屏功能

一、cmd命令行下实现清贫

1、编写一个类ClearScreen.java,代码如下:
public class ClearScreen{
//实现清屏方法的接口
public native static void clearScreen();

//加载dll文件
{
System.loadLibrary("Clear");//Clear 生成dll的文件名
}

}

2、编译ClearScreen类
命令行环境下执行   javac ClearScreen.java  -> ClearScreen.class

3、生成一个C的头文件,java里面提供一个工具javah
命令行环境下执行 javah ClearScreen -> ClearScreen.h

4、编写ClearScreen.cpp(c文件)实现native方法clearScreen(),代码如下:
#include <jni.h>
#include "ClearScreen.h"
#include <stdlib.h>
//这里两个ClearScreen 对应·······1步骤里的java类名和方法名
JNIEXPORT void JNICALL Java_ClearScreen_clearScreen(JNIEnv *, jclass){
system("cls");
}

5、安装一个microsoft compiler 编译ClearScreen.cpp,得到Clear.dll  //我这里用到的是Microsoft Visual Studio
注意:将Jdk安装环境include目录下的jawt_md.h jni_md.h jni.h三个头文件copy到 Microsoft Visual Studio的 include目录下

6、调用
注意:将生成的dll文件与ClearScreen类放在同一文件夹
(new ClearScreen()).clearScreen();

二、Eclipse IDE控制台下实现清屏

在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);       

    }

于是,在该要清屏的时候调用该clear()函数即可!

版权声明:本文为博主原创文章,未经博主允许不得转载。

原创文章 18 获赞 57 访问量 10万+

猜你喜欢

转载自blog.csdn.net/Linrena/article/details/84423875
今日推荐