我只是写了一些小代码试图让我的KeyEvent管理器工作。
正如你所见,我创建了一个JFrame并添加了gameComponent,它是Game类的一个对象。我将JPanel设置为可调焦,并请求调焦。然后将名为TAdapter的KeyAdapter设置为KeyAdapter。您可以在代码的最底层看到该类,它扩展了KeyAdapter和方法keyPressed()。
我告诉程序在按下一个键时将“按下”打印到我的控制台,但什么也没发生。
我不知道我做错了什么,也许有人看到了一些我自己没有看到的虫子?
任何帮助都将不胜感激
提前谢谢
public class Game extends JPanel {
public static final int WIDTH = 320;
public static final int HEIGHT = 240;
public static final int SCALE = 3;
public Game() {
addKeyListener(new TAdapter());
setFocusable(true);
requestFocus();
}
public static void main(String[] args) {
Game gameComponent = new Game();
Dimension size = new Dimension(WIDTH*SCALE, HEIGHT*SCALE);
JFrame frame = new JFrame("Invaders");
frame.setVisible(true);
frame.setSize(size);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.add(gameComponent);
}
public class TAdapter extends KeyAdapter {
public void keyPressed(KeyEvent e) {
System.out.println("Pressed");
}
}
}
requestFocus();
正确的使用方法是:
requestFocusInWindow();
虽然即使是这种方法也不起作用,因为这些方法只能在可见的组件上调用。当你创建组件时,它还不可见,所以去掉那行代码。
代码的主要问题是在框架可见后将组件添加到框架中。代码应该是这样的:
frame.add(gameComponent);
frame.setSize(size);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
那就是setViable(true)
应该是在所有组件都添加到框架中之后做的最后一件事。
最后,你甚至不应该使用KeyListener。Swing设计用于键绑定。正确使用密钥绑定时,不会出现焦点问题。
我有一个和这里完全相同的问题:spring boot-KeyCloak指向403被禁止但是,这个问题的答案说角色可能没有在KeyCloak服务器中配置或分配,这就是我的情况。 使用keycloak服务器对用户进行身份验证的一个有角度的前端应用程序。 然后将接收到的令牌传递给使用keycloak-spring-boot-2-starter使用spring-boot开发的rest服务。 这就是问题所在
我正试图在我的spring boot应用程序中使用KeyClope。 我想根据REST方法和用户角色限制对特定URL的访问。 在下面的示例中,具有或角色的用户可以执行GET,而具有或角色的用户可以执行POST、PUT或DELETE。 不幸的是,此配置允许任何经过身份验证的用户访问/api/日历URL。我做错了什么?
我正在研究使用Hibernate 4.1.9注释地图的不同方法 如果我想存储一个Map,其中键是实体值的属性,标记如下所示 请注意,上面的标记不会创建连接表,而是在运行时通过查询返回Map,因此Map是动态的,您不必在map中添加元素Java查询返回它们。 现在,我希望地图的内容反映应用程序添加到地图中的内容,而不是执行动态查询。 我想储存4种不同的地图 在这些情况下,键之间没有关系 我尝试了以下
Targets key To be discussed in order to avoid _Warning: potential malicious behavior - trust data has insufficient signatures for remote repository .dkr.ecr.us-east-1.amazonaws.com/app: valid signatur
Snapshot key To rotate the snapshot key: ❯ notary -D -v -s https://127.0.0.1:4443 -d ~/.docker/trust key rotate <aws_account_id>.dkr.ecr.us-east-1.amazonaws.com/app snapshot -r Enter passphrase for ne
Timestamp key The timestamp key can also be rotated: ❯ notary -D -v -s https://127.0.0.1:4443 -d ~/.docker/trust key rotate <aws_account_id>.dkr.ecr.us-east-1.amazonaws.com/app timestamp -r Enter the