是否可以从JOptionPane确认对话框中删除强制焦点,以便可以单击JFrame?

时间:2019-05-10 18:52:48

标签: java swing joptionpane

我正在尝试在单独的框架中使用JOptionPane确认对话框在文本字段中输入一些数据,然后让用户在输入输入时按'OK'。 catch是,输入只能是特定范围的值(有一个try catch子句来显示输入无效,需要更改)。为了避免用户不得不返回并手动检查哪些选项可用,我在背景中有一个不同的JFrame,其中有一个JTable,其中显示了要在JOptionPane中输入的所有可能值确认对话框。问题是,我无法在背景JTable的{​​{1}}中向下滚动,JFrame确认对话框只是闪烁。是否可以使JOptionPane确认对话框不强制将焦点放在该对话框上?如果没有,那么任何其他选择都可以创造奇迹。

我尝试使用多种东西,例如JOptionPanealwaysOnTop()setFocusableWindowState()setAlwaysOnTop()。我知道这些功能是与toFront()或Windows一起使用的,但是我不知道还有什么尝试。

这是一些JFrames的基本代码:

JFrame

我希望在// I didn't include the code for the other JFrame, I don't think it is // necessary. It is done as normal and works well. The following code is // only for the new JFrame with the JOptionPane confirm dialog. pane = new JPanel(); pane.setLayout(new GridLayout(0, 2, 2, 2)); idField = new JTextField(5); roomNumberField = new JTextField(5); pane.add(new JLabel("Enter the patient ID:")); pane.add(idField); pane.add(new JLabel("Enter the room number:")); pane.add(roomNumberField); optionFrame = new JFrame("Assign Room"); int option = JOptionPane.showConfirmDialog(optionFrame, pane, "Please enter the patient ID and room number.", JOptionPane.OK_CANCEL_OPTION); String idInput = idField.getText(); String roomNumberInput = roomNumberField.getText(); 确认对话框运行时,带有JFrame的背景JTable是可滚动/可单击的,但是此时JOptionPane确认对话框只是闪烁当我用JOptionPane单击JFrame时。有办法吗?否则,有关解决方法或替代方法的任何建议将不胜感激。

0 个答案:

没有答案