소개
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!