这可能是我忽略的一件非常简单的事情,但我似乎就是想不出来。
我有以下更新JTable的方法:
class TableModel extends AbstractTableModel {
public void updateTable() {
try {
// update table here
...
} catch (NullPointerException npe) {
isOpenDialog = true;
JOptionPane.showMessageDialog(null, "No active shares found on this IP!");
isOpenDialog = false;
}
}
}
但是,在按下消息对话框上的OK按钮之前,我不希望ISOpenDialog
boolean设置为false,因为如果用户按下enter,它将激活textfield上的KeyListener
事件,如果设置为false
,它将再次触发整个代码块。
部分KeyListener代码如下所示:
public class KeyReleased implements KeyListener {
...
@Override
public void keyReleased(KeyEvent ke) {
if(txtIPField.getText().matches(IPADDRESS_PATTERN)) {
validIP = true;
} else {
validIP = false;
}
if (ke.getKeyCode() == KeyEvent.VK_ENTER) {
if (validIP && !isOpenDialog) {
updateTable();
}
}
}
}
JOptionPane创建一个模态对话框,因此按照设计,在处理完对话框(按下其中一个按钮或按下关闭菜单按钮)之前,不会调用它之外的行。
更重要的是,您不应该使用KeyListener来执行这种操作。如果您希望JTextField监听enter键的按下,请向其添加ActionListener。
我被困在一个有硒等待的情况下。我正在使用硒爪哇和cucumber。点击一个按钮,一个新的页面加载,但内容还不能点击。当页面加载到背面时,将显示一个灰色屏幕阻止器,以便在加载整个页面之前使其不可编辑。所以我不能使用waitforpageload或wait for element使其可见,因为它们都返回true,因为元素在后台可用。我尝试使用一个条件来检查元素是否可点击,以确保页面完全加载。但那也没用
我正在做一个forEach循环,它对Cloudinary进行API调用,我正在用响应数据构建一个数组。 一旦收集到数据,我需要将其发送到其他API。 在发送数据之前,我如何等待promise得到解决并收集数据? 这是我的代码:
在我的程序中,它将单击浏览器中的一个按钮,并且在该页面中,应该会出现另一个按钮。出现该按钮后,我的程序将立即运行下一个操作来单击下一个按钮。我目前收到此错误: ElementNotVisibleException:消息:元素不可见 因此,我假设我正在调用该操作,以便在该按钮出现之前单击下一个按钮。我的问题是,我该怎么做才能让我的程序等到我可以点击按钮,再点击按钮? 这就是我的程序底部的代码的样子。
问题内容: JOptionPane.showMessageDialog应该是获取用户反馈的有用工具,因为它在您等待时会阻塞当前线程。 因此,我希望它是线程安全的,并且您不需要将调用包装在invokeLater或invokeAndWait中。 是这样吗 问题答案: 取自javax.swing包描述: Swing的线程策略 通常,Swing不是线程安全的。除非另有说明,否则所有Swing组件和相关类都
在Flutter中,当使用< code>showDatePicker时,为什么不立即接受按下的日期值(不必按OK)? 例如,如果小部件最初在2019年9月10日打开,我想选择2019年10月5日,我希望将月份切换到10月,然后从日历显示中按5,日历显示将自动接受日期为2019年十月5日,而无需按OK按钮。 有没有办法避免按下OK按钮?