【发布时间】:2017-03-09 00:30:04
【问题描述】:
我有一个简单的框架,它有一个按钮来切换该框架是否全屏。我想拥有它,以便用户只需按回车键即可切换全屏。我对 Java 很陌生。我希望事件监听器位于private FrontEnd()
import java.awt.event.*;
import javax.swing.*;
public class FrontEnd extends JFrame {
private boolean FullScreenMode = false;
private int PrevX, PrevY, PrevWidth, PrevHeight;
public static void main(String[] args) {
FrontEnd frame = new FrontEnd();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(480, 320);
frame.setVisible(true);
}
private FrontEnd() {
JPanel contentPane = new JPanel();
setContentPane(contentPane);
// From Here starts the trick
FullScreenEffect effect = new FullScreenEffect();
JButton fullscreenButton = new JButton("Fullscreen Mode");
fullscreenButton.addActionListener(effect);
contentPane.add(fullscreenButton);
fullscreenButton.setVisible(true);
}
private class FullScreenEffect implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
if (!FullScreenMode) {
PrevX = getX();
PrevY = getY();
PrevWidth = getWidth();
PrevHeight = getHeight();
dispose();
setUndecorated(true);
setBounds(0, 0, getToolkit().getScreenSize().width, getToolkit().getScreenSize().height);
setVisible(true);
FullScreenMode = true;
} else {
dispose();
setUndecorated(false);
setBounds(PrevX, PrevY, PrevWidth, PrevHeight);
setVisible(true);
FullScreenMode = false;
}
}
}
【问题讨论】:
-
有什么问题?你有错误吗?
-
没有任何错误。该按钮按预期工作。但我想要一个按键,而不是单击按钮。所以没有按钮,用户按回车键切换全屏
-
好吧,Using Keylistener 或者更好的是key binding。您应该先尝试这些解决方案。
-
正在检查类似问题here。