Java 用于用户输入的JPanel应显示在所有其他窗口的顶部
我不熟悉java swing,有一个问题,但首先让我解释一下我的应用程序的功能: 在第一次启动时,我的java web start应用程序要求用户输入用户名和密码,并使用java preferences api存储它们,之后(以及所有其他启动),它在后台处理所有内容,没有任何gui,除非发生错误 我是如何做到这一点的: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
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
的解决方案。。。