gpt4 book ai didi

java - 小程序未找到关键事件或获取焦点

转载 作者:行者123 更新时间:2023-12-01 15:52:32 25 4
gpt4 key购买 nike

我的小程序从未获得焦点。我在 Eclipse 中运行它,或者将它扔到我的网络服务器上,无论哪种方式它都不会获得焦点。

如果我的绘图机制不起作用,我会理解,因为这是我写的,而且我仍在解决其中的问题。但是,我有一条调试消息,当我按下某个键时应该触发,并且一条调试消息应该在我获得焦点时触发。都没有发生过火灾。

它确实显示了上下文。它只是生成一些随机图片并显示它们。

我需要做什么才能获得焦点并获得关键事件?

这是类(class)。它已被稍微削减,但并不显着。

public class ClientMain extends Applet implements KeyListener, FocusListener {

private Image offscreen;

private Image primary; // the main view screen

private ClientContext context;

public void init() {
setSize(800,600);
setFocusable(true);

offscreen = createImage(800, 600);

primary = createImage(530,450);

// for testing purposes. This just creates a random context
context = ClientContext.generateRandomContext();

}

public void paint(Graphics g) {
Graphics buffer = offscreen.getGraphics();
buffer.clearRect(0,0,getWidth(),getHeight());

drawPrimary();

g.drawImage(offscreen, 0, 0, this);

}

private void drawPrimary() {
Graphics g = primary.getGraphics();
int w = primary.getWidth(null);
int h = primary.getHeight(null);
System.out.println("primary: " + w + " " + h);
context.drawPrimary(g,w,h);
offscreen.getGraphics().drawImage(primary,150,0,this);
}

public void update() {
repaint();
}

public void mouseMoved(MouseEvent e) {
repaint();
}


@Override
public void keyPressed(KeyEvent e) {
System.out.println("Key Pressed: " + e.getKeyCode());
switch(e.getKeyCode()) {
case KeyEvent.VK_UP: context.up(); break;
case KeyEvent.VK_DOWN: context.down(); break;
case KeyEvent.VK_LEFT: context.left(); break;
case KeyEvent.VK_RIGHT: context.right(); break;
}
repaint();
}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void focusGained(FocusEvent e) {
System.out.println("got focus");

}

@Override
public void focusLost(FocusEvent e) {
System.out.println("lost focus");

}

}

最佳答案

所以,我觉得自己很傻。

我从未添加过关键监听器。所以它捕获了事件,但没有对它们做任何事情。

我只需要将其添加到我的 init()

addKeyListener(this);

...哦!

关于java - 小程序未找到关键事件或获取焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5724644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com