我正在用java编写一个简单的幻灯片程序。在那个程序中,我想在新窗口中显示像powerpoint这样的幻灯片。
我有主要的gui,它有单例模式,因此,我在我的MainGUI中创建我的SlideShowGUI,
非常相似我使用以下代码更改了createAndShowGUI()方法,以删除标题栏并将其最大化,如powerpoint幻灯片模式
public static void createAndShowGUI() {
JFrame frame = new JFrame("BorderLayoutDemo");
frame.addKeyListener(key);
addComponentsToPane(frame.getContentPane());
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
frame.setVisible(true);
}
在MainGUI中我有按钮,在ButtonHandler中我执行以下代码:
ChakmaSystem.getInstance().getGui().getSlideShowGUI().createAndShowGUI();
其中ChakmaSystem.getInstance()。getGui()返回MainGUI,而getSlideShowGUI()是SlideShowGUI的getter方法。
在SlideShowGUI中,我添加了自己的KeyListener,它跟踪左右和转义按钮。左右工作正常,但是,我希望转义按钮仅关闭我的SlideShowGUI窗口。
为此,在我的keylistener中,我写了以下代码:
// Escape Case
else if(keyCode == 27){
ChakmaSystem.getInstance().getGui().getSlideShowGUI().dispose();
}
我知道,当我按下逃生时它会碰到这种情况,但窗户不会关闭。
我该怎么办?
感谢。
答案 0 :(得分:1)
仅对于仍在寻找它的人-我关闭程序的方法非常非常简单:
if(e.getKeyCode() == KeyEvent.VK_ESCAPE) {
System.exit(1);
}
希望这会有所帮助。
答案 1 :(得分:0)
这有用吗?
// Escape Case
else if(keyCode == 27){
ChakmaSystem.getInstance().getGui().getSlideShowGUI().setVisile( false );
ChakmaSystem.getInstance().getGui().getSlideShowGUI().dispose();
}