2

このコードを書いているときに、jar ファイルを作成する場合、プログラムを適切に閉じる方法が必要であることに気付きました。キー「F1」を使用することにしました。私はオンラインでいくつかの記事を調査しましたが、それを処理しようとしている方法は実行可能なアプローチであることがわかりましたが、プログラムはイベント メソッドを起動していないようです。system.out.println は表示されません。

import java.applet.Applet;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;


public class MouseMove extends Applet implements KeyListener{

public static Random randomGenerator = new Random();
public static int code;

public void init(){
    addKeyListener(this);
}

public void keyPressed(KeyEvent evt){
    code = evt.getKeyCode();
    System.out.println("Key: "+KeyEvent.getKeyText(code));

    if(code == KeyEvent.VK_F1){
        System.exit(0);
    }
}

public void keyTyped(KeyEvent e){   
}
public void keyReleased(KeyEvent e){
}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    try {

        Robot robot = new Robot();          

        while(true){

            robot.mouseMove((int)(Math.random()*1366), (int)(Math.random()*768));
            robot.delay(5000);
            robot.mouseWheel((int)(Math.random()*786));
            robot.delay(5000);
        }
    } catch (AWTException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}//main

}//class
4

3 に答える 3

2
  1. KeyListenerウィンドウにある場合Componentにのみ機能します。Focus

  2. visibleコンテナを作成する必要があります。

  3. setFocusable()コンポーネント用

  4. Swing を使用する方がよいでしょうJComponent

  5. JFrameの代わりに使用しJAppletます。

于 2011-12-20T13:59:54.560 に答える
1

アプレットを操作するときは、System.exit()を使用しないでください。Javaアプレット(チュートリアル)を見てください。<applet>アプレットを実行するには、.htmドキュメントを作成し、タグを追加する必要があります。AppletViewerツールまたはWebブラウザーを使用して、そのhtmドキュメントを起動できます。

file.htm

<applet code="MouseMove" width="200" height="200"></applet>

コマンドラインからAppletviewerツールを起動するか、Webブラウザで.htmを開きます。

>appletviewer file.htm
于 2011-12-20T14:14:46.490 に答える
1

のインスタンスを作成することはありませんMouseMove。メイン メソッドは、ロボットを作成してループを開始するだけです。オブジェクトが存在しない場合、そのメソッドの 1 つを呼び出すことはできません。

于 2011-12-20T14:11:01.177 に答える