gpt4 book ai didi

java - 从另一个 JFrame 打开 JFrame,无需每次都打开一个全新的 JFrame

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:36 28 4
gpt4 key购买 nike

所以基本上我有一个 2D 游戏(基本上是过去的仿制品的链接),当你按 e 键时,库存会打开,关闭时会隐藏。问题是,每次我按 e 键时,它都会打开一个包含所有初始值的新库存,我希望它在初始值之后打开一个新库存。会发布代码,但它又长又乱(我是初学者)

最佳答案

据我了解,您需要在按下“e”键时从主 JFrame 提供一个 Inventory JFrame,并在关闭 Inventory JFrame 时隐藏它。尝试以下示例:

public class Main extends JFrame {

private Inventory inventoryFrame;

public Main()
{
inventoryFrame = new Inventory();
this.setTitle("Main");
this.setSize(500,500);
//when 'e' is pressed, show the inventory frame
this.addKeyListener(new KeyAdapter(){
@Override
public void keyTyped(KeyEvent e) {
System.out.println("invoked "+e.getKeyChar());
if(e.getKeyChar() == 'e' || e.getKeyChar() == 'E')
{
inventoryFrame.setVisible(true);
}
}
});

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String... s)
{
new Main().setVisible(true);
}

}


public class Inventory extends JFrame {

public Inventory()
{
//initialize the values here...
this.setSize(500,500);
this.setTitle("Inventory");
//on closing event... just hide it rather than closing it.
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}


}

基本上,Main 类保留一个 Inventory JFrame 对象,并在按下“e”时使其可见,并且每当关闭 Inventory 时,它都会被隐藏,因为为 Inventory 框架设置的默认关闭操作是 HIDE_ON_CLOSE。

希望这有帮助...

关于java - 从另一个 JFrame 打开 JFrame,无需每次都打开一个全新的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34702763/

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