«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как обрабатывать пользовательский ввод в полноэкранном эксклюзивном режиме Java?

Как обрабатывать пользовательский ввод в полноэкранном эксклюзивном режиме Java?

Опубликовано в 2025-03-26
Просматривать:294

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

Обработка ввода пользователя в полноэкранном эксклюзивном режиме в Java

введение

woods

режим пассивного рендеринга позволяет использовать интерфейсы KeyListener и ActionListener для обработки ввода пользователя. Однако в полноэкранном эксклюзивном режиме эти методы не могут функционировать, как предполагалось.

Solution

] Следующий скелет дает пересмотренный пример, который реализует обработку событий для кликов мыши и нажима с ключами в режиме полного экрана:

импорт java.applet.applet.applet.applet; импортировать java.awt.color; импортировать java.awt.displaymode; импортировать java.awt.graphics2d; Импорт java.awt.graphicsconfiguration; Импорт java.awt.graphicsdevice; Импорт java.awt.graphicsenvironment; импортировать java.awt.rectangle; импортировать java.awt.event.actionevent; импортировать java.awt.event.actionlistener; импортировать java.awt.event.keyevent; импортировать java.awt.event.mouseadapter; Импорт java.awt.event.mouseeVent; импортировать java.awt.image.bufferstrategy; импортировать javax.swing.jframe; импортировать javax.swing.timer; Applet Public Class Extens Applet { Таймер таймер; Jframe Frame; DisplayMode [] displayModes = new DisplayMode [] { Новый дисплей (1280, 800, 32, 60) }; Bufferstrategy Bufferstrategy; Прямоугольные границы; /** * */ Частный статический конечный длинный SerialVersionuid = 1L; /** * @param args */ public void init () { // ... так же, как и раньше // ... // Зарегистрируйте ключевые слушатели событий this.getInputMap (). Put (keystroke.getKeyStroke (keyEvent.vk_q, 0), "exit"); this.getActionMap (). put ("exit", new AbstractAction () { @Override public void actionperformed (actionEvent e) { // Выход обработки ключей } }); // Зарегистрировать слушателей событий мыши this.addmousemotionListener (new MouseAdapter () { @Override public void mousemoved (mouseevent e) { // обработка движения мыши } }); } // ... так же, как и раньше // ... }

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
    // ...
}
]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3