自从我上次使用Java编程以来已经有一段时间了,遗憾的是我几乎忘记了我所知道的一切......就这样你知道,我做了Google搜索,找不到我需要的任何问题。我想让我的窗口在全屏和窗口之间切换。这是我的代码......
public class Window extends JFrame implements KeyListener{
ImageIcon i= new ImageIcon("icon.png");
Image ico=i.getImage();
public void create(){
this.setSize(800,600);
this.setVisible(true);
this.setFocusable(true);
this.setIconImage(ico);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setTitle("MYTITLE");
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e){
if (e.getKeyChar()==KeyEvent.VK_F1){
this.setSize(1280,1024);
this.setUndecorated(true);
}else{
this.setSize(800,600);
}
}
}
它创建了窗口,但是我无法调整窗口的大小,我已经导入了那些你想知道的事件库。非常感谢帮助。
答案 0 :(得分:2)
首先,看一下the key bindings API,这样可以更好地控制生成关键事件所需的焦点水平。
其次,看一下JFrame#setExtendedState,它将允许您以独立于平台的方式控制窗口的大小状态
答案 1 :(得分:-1)
您无法在keyTyped中使用e.getKeyChar。它什么都不返回。将进程转移到keyPressed方法或执行类似这样的操作
ArrayList<Integer> keysDown = new ArrayList<>();
public void keyPressed(KeyEvent e) {
keysDown.add(e.getKeyCode());
}
public void keyReleased(KeyEvent e) {
keysDown.remove(keysDown.indexOf(e.getKeyCode()));
}
public void keyTyped(KeyEvent e) {
if(keysDown.contains(KeyEvent.VK_F1)) {
//Do Something
}
}