【发布时间】:2012-12-26 20:29:45
【问题描述】:
package javaapplication1;
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class JavaApplication1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.setTitle("Frame");
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
device.setFullScreenWindow(frame);
device.setDisplayMode(new DisplayMode(800, 600, 32, 60));
frame.setVisible(true);
JButton btn = new JButton();
btn.setText("Button");
JPanel panel = new JPanel();
panel.add(btn);
frame.add(panel);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame, "JOptionPane");
}
});
}
}
当我单击按钮时,设置为全屏的应用程序将转到任务栏/最小化,因此我需要先在任务栏中单击它,然后才能看到我触发的 JOptionPane。你认为这有什么问题?我希望它能够顺利运行,而不会被最小化或进入任务栏。期待您的回答。提前致谢。或者有没有其他的替代方案?
【问题讨论】:
-
Jframe 上不需要 setVisible(true) 的一件事,因为
setFullScreenWindow(frame);会将框架设置为可见,如果不是。话虽如此,在将所有组件添加到 JFrame 之后,我也会移动此调用,但这并不能解决问题,而是减少了可能原因的可能性 -
@DavidKroukamp,我删除了我以前的问题。只是我希望它被回答而不是被遗漏。
-
@Jong 我正要建议删除旧问题。在那种情况下,我的错误。我也想要解决方案或 atlesst 可能有什么问题。加 1
-
@Jong 这里是一个没有被删除的副本。stackoverflow.com/questions/14014523/…
标签: java swing awt fullscreen joptionpane