JOptionPane showMessageDialog 在控制台程序中请求焦点
JOptionPane showMessageDialog request focus in console program
我有一个在 CLI 中运行的程序,但它使用 JOptionPane 来显示弹出菜单以提醒用户事件。我注意到调用 showMessageDialog 方法时,生成的弹出菜单不会自动聚焦。
有没有办法请求弹出对话框的焦点?我试过在 JOptionPane 上调用 requestFocus,但无济于事。
这是一些示例代码。
System.out.println("Backing up...");
//backUp();
Component frame = null;
JOptionPane jop = new JOptionPane();
jop.showMessageDialog(frame, "Backup complete. Ready for encryption.");
如果这是转贴,我深表歉意,但到目前为止我还没有找到有效的答案。
创建一个 JDialog
并通过 true
调用 setAlwaysOnTop。
JOptionPane jop = new JOptionPane();
JDialog dlog = jop.createDialog(null, "Backup complete. Ready for encryption.");
dlog.setAlwaysOnTop(true);//make JDialog on top of other windows
dlog.setVisible(true);
以上适用于 Windows
,但请注意,此行为可能取决于平台(请参阅文档 - 您可以通过 isAlwaysOnTopSupported 方法检查是否支持)
我有一个在 CLI 中运行的程序,但它使用 JOptionPane 来显示弹出菜单以提醒用户事件。我注意到调用 showMessageDialog 方法时,生成的弹出菜单不会自动聚焦。
有没有办法请求弹出对话框的焦点?我试过在 JOptionPane 上调用 requestFocus,但无济于事。
这是一些示例代码。
System.out.println("Backing up...");
//backUp();
Component frame = null;
JOptionPane jop = new JOptionPane();
jop.showMessageDialog(frame, "Backup complete. Ready for encryption.");
如果这是转贴,我深表歉意,但到目前为止我还没有找到有效的答案。
创建一个 JDialog
并通过 true
调用 setAlwaysOnTop。
JOptionPane jop = new JOptionPane();
JDialog dlog = jop.createDialog(null, "Backup complete. Ready for encryption.");
dlog.setAlwaysOnTop(true);//make JDialog on top of other windows
dlog.setVisible(true);
以上适用于 Windows
,但请注意,此行为可能取决于平台(请参阅文档 - 您可以通过 isAlwaysOnTopSupported 方法检查是否支持)