我使用的是一个由渲染器对象的ObservableList支持的TableView,其设置如下:
private ObservableList<Renderer> renderers = FXCollections.observableArrayList();
@FXML
private TableView<Renderer> renderersTable;
@FXML
private TableColumn<Renderer, String> nameColumn;
@FXML
private TableColumn<Renderer, Boolean> approvedColumn;
@FXML
private void initialize() {
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
approvedColumn.setCellValueFactory(new PropertyValueFactory<>("approved"));
renderersTable.setItems(renderers);
}
渲染器对象非常简单,如下所示:
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class Renderer extends Model {
private String name;
private boolean approved;
// ...
}
我有一个从UI调用的函数,通过按下按钮并包含以下内容:
@FXML
private void approveSelectedRenderers() {
List<Renderer> selectedRenderers = new ArrayList<>();
selectedRenderers.addAll(renderersTable.getSelectionModel().getSelectedItems());
for (Renderer renderer : selectedRenderers) {
renderer.setApproved(true);
renderers.set(renderers.indexOf(renderer), renderer);
Thread.sleep(3000); // Simulate slowly talking to the network.
}
}
我原本希望每3秒钟在每一行上看到一次对approved的更改,但它会执行所有行,并且只有在这之后才会更新UI。为什么会这样?如何更新UI?
看起来所有渲染都是在FX线程上进行的。这将阻止您的UI,直到所有处理完成,然后将更新。
要查看长时间运行的进程——使用任务或服务,在它们的更新回调中,您可以更新UI。
您也可以使用平台。runLater()从后台运行的线程发回UI线程。
问题内容: 我试图弄清楚Angular的工作原理,并在模型更改时无法更新视图。 的HTML JS http://jsfiddle.net/N2G7z/ 有任何想法吗? 问题答案: 正如上面提到的Ajay beniwal一样,您需要使用Apply来开始消化。
我尝试重新验证()和重新绘制(),但没有改变。 现在有趣的事情来了。如果我用for(int I=0;I 只有当我用另一个我手动填写的列表创建和设置新模型时,我才能查看更新。
问题内容: 我用来加载图像。值是从一些范围变量加载的,如下所示: 我的问题是,当我运行时,它会使属性为空,但不会在属性中反映出来。因此,我不断看到需要空占位符的图像。 我该如何处理? 问题答案: 这是ngSrc和ngHref指令的预期行为。这些指令仅支持识别新路径,但是当路径不可用时,这些指令将以静默方式退出(我在这里看到一个拉取请求。)。 因此,当图像变量不再可用时,可能的解决方法是将ngSho
我现在迷路了。
问题内容: 我正在尝试使用包含Latex样式方程式的AngularJS双向绑定文本。我想调用MathJax格式化方程式,但是我不确定在AngularJS完成更改模型后确保调用MathJax的最佳方法。我想我需要回调。这是我的JavaScript: } 这是我的HTML: 小提琴在这里:http : //jsfiddle.net/LukasHalim/UVjTD/1/。您会注意到,即使您单击两次更新
我的视图中有一个树查看器,它从标准的Ecore编辑器中监听EMF模型,并用它做进一步的事情。我已经注册了一个选择监听器,它检查所选元素是否是树查看器需要作为输入的类型。因此,问题是,如果模型中有任何变化(例如,向现有元素添加新元素或新信息等),树查看器仅在用户更改选择时才显示更改后的模型,即单击任何模型元素等。 但是我需要做的是,如果底层模型发生变化,树查看器将直接得到通知,并显示新的模型元素,而