Java 使用键盘关闭JFrame
我正在为一个大学小项目创建一个基本的屏幕保护程序,在打开JFrame后,我很难关闭它。我已经移除了外部面板,以使其看起来像一个合适的屏幕保护程序,但我现在必须打开任务管理器来关闭程序,我希望当我按下键盘上的按钮时窗口关闭,我如何才能做到这一点? 提前谢谢 -------编辑-------- 我已经尝试了前面给出的两种方法,但似乎无法使它们正常工作。以下是迄今为止我的框架代码:Java 使用键盘关闭JFrame,java,swing,java-7,keylistener,Java,Swing,Java 7,Keylistener,我正在为一个大学小项目创建一个基本的屏幕保护程序,在打开JFrame后,我很难关闭它。我已经移除了外部面板,以使其看起来像一个合适的屏幕保护程序,但我现在必须打开任务管理器来关闭程序,我希望当我按下键盘上的按钮时窗口关闭,我如何才能做到这一点? 提前谢谢 -------编辑-------- 我已经尝试了前面给出的两种方法,但似乎无法使它们正常工作。以下是迄今为止我的框架代码: import java.awt.Color; import javax.swing.JFrame; pu
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);
}
}
--------编辑---------
另外,我使用重绘方法在屏幕上移动对象,我希望其中一些对象以不同的速度移动。我正在使用随机数生成器进行定位,因此调整数字并不是一个真正的选项,请帮助。有很多关于如何进行此操作的示例 您需要向侦听键盘输入的帧添加eventListener,然后关闭该帧。 试着看看这个: 你必须用一些东西来代替这个活动,但我认为这是最好的方式 编辑: 要响应帖子中的编辑,您可以执行以下操作:
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上为我编译。有很多关于如何编译的示例 您需要向侦听键盘输入的帧添加eventListener,然后关闭该帧。 试着看看这个: 你必须用一些东西来代替这个活动,但我认为这是最好的方式 编辑: 要响应帖子中的编辑,您可以执行以下操作:
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上为我编译。如果您只有一个JFrame,下面是代码。您应该在初始化组件时添加它
addKeyListener(new KeyAdapter()
{
@Override
public void keyPressed(java.awt.event.KeyEvent evt)
{
processWindowEvent(new WindowEvent(getWindows()[0], WindowEvent.WINDOW_CLOSING));
}
});
如果您只有一个JFrame,下面是代码。您应该在初始化组件时添加它
addKeyListener(new KeyAdapter()
{
@Override
public void keyPressed(java.awt.event.KeyEvent evt)
{
processWindowEvent(new WindowEvent(getWindows()[0], WindowEvent.WINDOW_CLOSING));
}
});
只要创建一个KeyListener并在发生此事件时关闭该程序。只要创建一个KeyListener并在发生此事件时关闭该程序。感谢到目前为止的帮助,但当我输入给定的代码并添加导入和实现EventListener时,我在addEventListener的代码最后一行仍然会出现错误“找不到符号”我也不知道怎么回事,请帮忙。嗯。。好的。我的代码有很多错误。对不起!我将使用一个工作示例进行更新。感谢到目前为止的帮助,但是当我输入给定的代码并添加导入和实现EventListener时,我仍然在addEventListener的代码最后一行出现错误,说“找不到符号”,我无法找出错误的地方,请提供帮助。嗯。。好的。我的代码有很多错误。对不起!我将更新一个工作示例。