Pengenalan
Apabila menjalankan aplikasi Java dalam skrin penuh eksklusif mod, mekanisme pengendalian acara biasa mungkin tidak berfungsi seperti yang diharapkan. Artikel ini meneroka pendekatan yang betul untuk mengendalikan input pengguna daripada papan kekunci dan tetikus dalam mod ini.
Masalah
Mod pemaparan pasif membolehkan penggunaan antara muka KeyListener dan ActionListener untuk mengendalikan input pengguna. Walau bagaimanapun, dalam mod eksklusif skrin penuh, kaedah ini mungkin tidak berfungsi seperti yang dimaksudkan.
Penyelesaian
Rangka berikut menyediakan contoh yang disemak semula yang melaksanakan pengendalian acara untuk klik tetikus dan menekan kekunci dalam mod skrin penuh:
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 // ... }
Contoh yang disemak ini memastikan acara papan kekunci dan tetikus dikendalikan dengan betul dalam mod eksklusif skrin penuh. Ia mendaftarkan pendengar acara utama menggunakan getInputMap dan getActionMap, dan mendaftarkan pendengar acara tetikus menggunakan addMouseMotionListener.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Input Pengguna dalam Mod Eksklusif Skrin Penuh Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!