Java图形全屏模式未注册键盘输入

问题描述 投票:1回答:1

我正在尝试编写一个使用键盘输入的全屏应用程序。我尝试将关键侦听器添加到我的JFrame中,现在又添加到JFrame中的画布上,并将它们都设置为可聚焦,但是似乎根本没有注册任何东西。在全屏模式下我需要做些特别的事情来注册我的keyEvents吗?任何帮助,不胜感激。 (显示只是JFrame的扩展,尚未进行任何更改)

public class chanceCore implements Runnable, KeyListener, MouseListener {

boolean isRunning = true;
display frame;
Canvas canvas;
GraphicsDevice device;
GraphicsEnvironment environment;

public chanceCore() {
    setUp();
    run();
}

public void setUp() {
    frame = new display("CGE");
    canvas = new Canvas();
    frame.getContentPane().add(canvas);
    frame.setUndecorated(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    canvas.addKeyListener(this);
    canvas.addMouseListener(this);
    canvas.setFocusable(true);
    frame.setVisible(true);
    environment = GraphicsEnvironment.getLocalGraphicsEnvironment();
    device = environment.getDefaultScreenDevice();
    device.setFullScreenWindow(frame);

}

@Override
public void run() {
    while (isRunning) {
        draw(canvas.getGraphics());
        try {
            Thread.sleep(200);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

public void draw(Graphics g) {
    g.setColor(Color.BLUE);
    g.fillRect(0, 0, frame.getWidth(), frame.getHeight());
}

@Override
public void keyPressed(KeyEvent e) {
   System.out.println(e.getKeyCode());
}
java canvas awt paint keylistener
1个回答
1
投票

尝试此代码。调用setFullScreenMode()之后,只需添加这两行。当我们进入全屏模式时,出现了问题,

frame.setVisible(false);
© www.soinside.com 2019 - 2024. All rights reserved.