我有一个javaFX应用程序可视化计算几何算法.算法的执行发生在另一个线程中,让我们调用它mainComputingThread
.算法可以通过添加/删除/修改形状随时更新UI.所以代码看起来像:
//do some computaions (1)
updateUI();
//do some more calculations (2)
Run Code Online (Sandbox Code Playgroud)
我想知道的是在updateUI
方法中立即更新UI并阻止调用线程进一步运行(标记为(2))直到UI更新完成.
我想到了布尔警卫.所以代码可能看起来像:
updateUI(){
boolean guard = false;
Platform.runLater(new Runnable()
{
run(){
//do the actual update
guard = true;
}
});
while(guard==false);
}
Run Code Online (Sandbox Code Playgroud)
我希望你能明白我的意思.我真的好奇是否有更好的解决方案来解决这个问题...
是否可以将 a 的原点设置Pane
为左下角(而不是左上角)?我在画布上添加了许多在“数学坐标系”中定义的形状。
我认为也许有一种比总是从 y 坐标中减去高度更简单的方法。另一个优点是我不必负责调整窗格的大小。
我正在玩vue.js,并且在正确使用v-if方面有些挣扎。
我正在尝试在模板中进行条件模板渲染。在创建的方法中,将变量isloaded
设置为true,这将导致重新渲染模板,并使“正在加载数据”消息消失。
但是,指示的日志显示,2s的延迟有效,因此可以实现回调,但是好像我没有正确更新数据变量。
我已经尝试了好几种方法,现在我将“ true / false”更改为字符串,以便更接近官方主页上给出的示例,但仍然没有成功。希望您能帮助我,在此先多谢。
请在下面找到有趣的代码片段:
var step1 = Vue.component('step1', {
template: '#step1',
data: function() {
return {
accounts: [],
isloaded: 'false'
}
},
created: function() {
console.log("created");
setTimeout(function() {
console.log("times over");
this.isloaded = 'true';
this.accounts = [{
id: 1234,
name: "germany"
}];
}, 2000);
},
methods: {
loaded: function() {
console.log(this.isloaded === 'true');
return this.isloaded === 'true';
}
}
})
new Vue({
el: '#main'
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@2.1.10/dist/vue.js"></script>
<template id="step1">
<div class="step1">
<h1>Welcome please choose your …
Run Code Online (Sandbox Code Playgroud)