使用KeyEvent在Java中使窗口可调整大小
自从我上次用Java编程已经有一段时间了,不幸的是我几乎忘记了我知道的一切……正如你所知,我在谷歌上搜索了一下,找不到解决这个问题所需要的任何东西。我想让我的窗口在全屏和窗口之间切换。这是我的密码使用KeyEvent在Java中使窗口可调整大小,java,swing,resize,window,toggle,Java,Swing,Resize,Window,Toggle,自从我上次用Java编程已经有一段时间了,不幸的是我几乎忘记了我知道的一切……正如你所知,我在谷歌上搜索了一下,找不到解决这个问题所需要的任何东西。我想让我的窗口在全屏和窗口之间切换。这是我的密码 public class Window extends JFrame implements KeyListener{ ImageIcon i= new ImageIcon("icon.png"); Image ico=i.getImage(); public void creat
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);
}
}
}
它创建了一个窗口,但我无法让它调整窗口的大小,我已经为您导入了事件库。非常感谢您的帮助。首先,请看一下,这将使您能够更好地控制生成关键事件所需的焦点级别
其次,看一看,这将允许您以独立于平台的方式控制窗口的大小状态您不能在keyTyped中使用e.getKeyChar。它什么也不返回。要么将进程切换到按键方法,要么执行类似操作
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
}
}
ArrayList keysDown=new ArrayList();
按下公共无效键(按键事件e){
添加(例如getKeyCode());
}
公共无效密钥已释放(密钥事件e){
remove(keysDown.indexOf(e.getKeyCode());
}
public void keyTyped(KeyEvent e){
if(keysDown.contains(KeyEvent.VK_F1)){
//做点什么
}
}
+1用于键绑定。您可能需要将键绑定添加到框架的根窗格中。您可以使用frame.getRootPane()
访问根窗格。1)您从未向组件添加KeyListener,因此它无法工作;2)您甚至不应该使用KeyListener。最好按照MadProgrammer(1+)使用密钥绑定。最重要的是,你试图同时解决两个问题,这就是为什么你不能通过谷歌搜索找到解决方案。相反,要单独解决这些问题——1)在Swing GUI中获得按键,2)将GUI从窗口更改为全屏幕和背面。正如我所说,我编程已经有一段时间了,我正在为大学做这件事。我有点来回切换,从以前的项目,我曾试图重新学习它。