введение
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