gpt4 book ai didi

java - 使用键盘关闭 JFrame

转载 作者:行者123 更新时间:2023-12-02 00:26:14 26 4
gpt4 key购买 nike

我正在为大学的一个小项目创建一个基本的屏幕保护程序,但在打开 JFrame 后关闭它时遇到问题。我已经删除了外部面板,以便使其看起来像一个合适的屏幕保护程序,但我现在必须打开任务管理器来关闭程序,我希望在按下键盘上的按钮时关闭窗口,我该怎么做? 提前致谢。

--------编辑--------

我已经尝试了前两种方法,但我似乎无法让它们正常工作。这是到目前为止我的框架代码:

import java.awt.Color;    
import javax.swing.JFrame;
public class ScreensaverTest

{
public static void main( String[] args )
{
JFrame frame = new JFrame( "Screen Saver" );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setUndecorated(true);
ScreenSaverJPanel screensaverTestJPanel = new ScreenSaverJPanel();
frame.add( screensaverTestJPanel );
frame.setBackground( Color.BLACK );
frame.setVisible( true );
frame.setLocation( 0, 0 );
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
}

--------编辑---------

此外,我还使用重绘方法在屏幕上移动对象,并且我希望其中一些对象以不同的速度移动。我正在使用随机数生成器进行定位,因此调整数字并不是真正的选择,请帮忙。

最佳答案

有很多关于如何执行此操作的示例。

您需要向框架添加一个事件监听器,用于监听键盘输入,然后关闭框架。尝试看看这个:http://www.java2s.com/Code/Java/Swing-JFC/Reacttoframecloseaction.htm

您必须将事件替换为 keyboard-related ,但这是我认为最好的方法..

编辑:

要回复帖子中的编辑,您可以执行以下操作:

import javax.swing.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Test {

public Test() {
final JFrame frame = new JFrame("Screen Saver");
frame.validate();
frame.setVisible(true);

KeyAdapter listener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent e) {
frame.dispose();
}
};

frame.addKeyListener(listener);
}

public static void main(String[] args) {
new Test();
}

}

瞧 - 这应该可行。它可以在 Java 7 上为我编译。

关于java - 使用键盘关闭 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958645/

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