Java 用于用户输入的JPanel应显示在所有其他窗口的顶部

Java 用于用户输入的JPanel应显示在所有其他窗口的顶部,java,swing,jpanel,joptionpane,always-on-top,Java,Swing,Jpanel,Joptionpane,Always On Top,我不熟悉java swing,有一个问题,但首先让我解释一下我的应用程序的功能: 在第一次启动时,我的java web start应用程序要求用户输入用户名和密码,并使用java preferences api存储它们,之后(以及所有其他启动),它在后台处理所有内容,没有任何gui,除非发生错误 我是如何做到这一点的: public boolean getLogin() { JTextField u = new JTextField(5); u.setText("Username

我不熟悉java swing,有一个问题,但首先让我解释一下我的应用程序的功能:

在第一次启动时,我的java web start应用程序要求用户输入用户名和密码,并使用java preferences api存储它们,之后(以及所有其他启动),它在后台处理所有内容,没有任何gui,除非发生错误

我是如何做到这一点的:

public boolean getLogin() {
    JTextField u = new JTextField(5);
    u.setText("Username");
    JPasswordField p = new JPasswordField(5);
    p.setText("example");
    p.setEchoChar('*');

    JPanel input = new JPanel();
    input.setLayout(new BoxLayout(input, BoxLayout.Y_AXIS));
    input.add(new JLabel("Please input your credentials"));
    input.add(Box.createVerticalStrut(25));
    input.add(u);
    input.add(Box.createVerticalStrut(10));
    input.add(p);

    int result = JOptionPane.showConfirmDialog(null, input, "Login", JOptionPane.OK_CANCEL_OPTION);
    if (result == JOptionPane.OK_OPTION) {
        id.setCredentials(u.getText(), p.getPassword());
        return true;
    } else
        return false;

}
工作起来很有魅力,我唯一的问题是JOptionPane有时会出现在所有其他窗口(如webbrowser、explorer等)的后面。JOptionPane/JPanel是否有一个解决方案可以让窗口显示在所有其他窗口的顶部?或者JOptionPane/JPanel是错误的吗?我不需要一个“始终在顶部”的解决方案,只是窗口显示在所有其他窗口的顶部


提前谢谢你

您必须创建自己的
JDialog
并使用
setAlwaysOnTop
或致电
bringFront
哇,这是一个快速的答案。。。30秒。。。因此,真的没有其他选择了吗?我“认为”我可能在不久前就做了一些事情,但我很难找到答案,但它通常是最干净的;)好的,那么非常感谢您的即时回答:)并不完全相同,但会给您一个仍然可以使用
JOptionPane
的解决方案。。。