我无法找到全屏窗口的任何特定解决方案,所以我想问。如何在全屏窗口顶部创建一个JOptionPane?如何使JOptionPane在全屏窗口之上?
在这里,我采取全屏窗口作为构造参数。但是当我按ESC时,我的窗口发送到后台,就像我按下了“Alt + Tab”。然后,如果从开始菜单栏点击,我可以在窗口顶部看到它。但我想结束这个发送背景问题。我该如何解决它?
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
import java.awt.*;
public class KeyListenerTest extends JFrame implements KeyListener {
private Window windo;
private ImageIcon quitImage;
public KeyListenerTest(Window window)
{
quitImage = new ImageIcon("quitask.png");
windo = window;
addKeyListener(this);
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
JOptionPane opti = new JOptionPane();
int choice = opti.showConfirmDialog(windo, "Do you really want to quit?", "QUIT", JOptionPane.YES_NO_OPTION ,
JOptionPane.QUESTION_MESSAGE , quitImage);
opti.requestFocusInWindow();
if(choice == JOptionPane.YES_OPTION)
{
System.exit(0);
}
else
{
dispose();
System.out.println("ESC key typed");
}
}
}
public void keyTyped(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
}
这里是我使我的窗口全屏
window=(Window)frame;
window.setFocusable(true);
KeyListenerTest keyo = new KeyListenerTest(window);
frame.addKeyListener(keyo);
g.setFullScreenWindow(window);
不知道它是否会起作用。但是当你显示来自JOptionPane的确认对话框时,将'windo'改为'this'。 –
现在JOptionPane弹出在屏幕中心,但现在我的背景窗口变得不可见。我想看到我的窗口和JOptionPane – BlocBloc
你可以使这个JFrame成为一个JWindow ..你在用背景窗口期待什么。我认为如果你在后台有一个JFrame会很容易.. –