ホームページ > Java > &#&チュートリアル > Java の全画面排他モードでユーザー入力を処理するにはどうすればよいですか?

Java の全画面排他モードでユーザー入力を処理するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-30 21:01:14
オリジナル
581 人が閲覧しました

How to Handle User Input in Java's Full-Screen Exclusive Mode?

Java の全画面排他モードでのユーザー入力の処理

概要

全画面排他モードで Java アプリケーションを実行する場合モードでは、通常のイベント処理メカニズムが期待どおりに動作しない可能性があります。この記事では、このモードでキーボードとマウスからのユーザー入力を処理するための正しいアプローチについて説明します。

問題

パッシブ レンダリング モードでは、KeyListener インターフェイスと ActionListener インターフェイスを使用して処理できます。ユーザー入力。ただし、全画面排他モードでは、これらのメソッドは意図したとおりに機能しない可能性があります。

解決策

次のスケルトンは、マウス クリックとイベント処理を実装する改訂された例を提供します。全画面モードでのキー押下:

import java.applet.Applet;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.Timer;

public class applet extends Applet {

    Timer timer;
    JFrame frame;
    DisplayMode[] displayModes = new DisplayMode[] {
            new DisplayMode(1280, 800, 32, 60)
    };

    BufferStrategy bufferStrategy;
    Rectangle bounds;

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    /**
     * @param args
     */

    public void init() {
        // ... Same as before
        // ...

        // Register key event listeners
        this.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_Q, 0), "EXIT");
        this.getActionMap().put("EXIT", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // Exit key handling
            }
        });

        // Register mouse event listeners
        this.addMouseMotionListener(new MouseAdapter() {
            @Override
            public void mouseMoved(MouseEvent e) {
                // Mouse movement handling
            }
        });
    }

    // ... Same as before
    // ...
}
ログイン後にコピー

この改訂された例では、全画面排他モードでキーボードとマウスのイベントが正しく処理されるようになります。 getInputMap と getActionMap を使用してキー イベント リスナーを登録し、addMouseMotionListener を使用してマウス イベント リスナーを登録します。

以上がJava の全画面排他モードでユーザー入力を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート