我有一个使用JavaFX和FXML制作的GUI.
这个GUI有很多组件,并不是所有组件都需要在一个时刻.
例如,假设一个GUI从其服务器部分接收城市列表.每个城市都在其自己的选项卡上进行描述(并使用大量节点进行描述).这组城市包含30个元素.
启动GUI时,它会向服务器请求城市列表.服务器返回城市的随机"子集"(因此,它可以是莫斯科+里加+纽约或圣彼得堡+东京,或仅阿姆斯特丹,或一组中的所有30个城市).
所以.我没有必要在我的节点树中拥有所有30个选项卡(我想它们只会"吃掉"内存而已.)
我想管理GUI上每个时刻的标签数量.
我有的第一个简单的解决方案如下:
我对此解决方案存在问题.首先,我不知道是否tabPane.getTabs().remove(index)真的从节点树中删除了选项卡及其所有内容.其次,所有不需要的选项卡将在删除之前初始化,因此无论如何它们将使用内存和资源,并且我的GUI可能比它必须慢.
我的第二个解决方案是:
但是会有许多FXML,所以这个解决方案也没用.
我梦寐以求的解决方案:
所以,如果有人对此任务有任何想法,或者知道解决方案,请帮助我...
我有两个我要测试的原型:
var Person = function() {};
Person.prototype.pingChild = function(){
var boy = new Child();
boy.getAge();
}
var Child = function() {};
Child.prototype.getAge = function() {
return 42;
};
Run Code Online (Sandbox Code Playgroud)
我究竟要测试的是:检查getAge()方法内部是否调用该pingChild()方法
这是我试图用于此目的的Jasmine规范:
describe("Person", function() {
it("calls the getAge() function", function() {
var fakePerson = new Person();
var chi = new Child();
spyOn(fakePerson, "getAge");
fakePerson.pingChild();
expect(chi.getAge).toHaveBeenCalled();
});
});
describe("Person", function() {
it("calls the getAge() function", function() {
var fakePerson = new Person();
spyOn(fakePerson, "getAge");
fakePerson.pingChild();
expect(fakePerson.getAge).toHaveBeenCalled();
});
}); …Run Code Online (Sandbox Code Playgroud) 如何自动打开ComboBox?
我有一个可编辑的ComboBox.我想让它自动打开,而不是强迫用户点击它.怎么做到呢?我试图做这样的事情:
testButton.fireEvent(new Event(ComboBox.ON_SHOWN));
Run Code Online (Sandbox Code Playgroud)
但它不能正常工作:在输出中我可以看到消息,它表示ON_SHOWN事件被触发,但是图形上我的comboBox仍然关闭.另外,我试过了
testButton.fireEvent(new Event(ComboBox.ON_SHOWING));
Run Code Online (Sandbox Code Playgroud)
但这根本没有反应.以及
testButton.fireEvent(new Event(ComboBoxBase.ON_SHOWING));
Run Code Online (Sandbox Code Playgroud)
和
testButton.fireEvent(new Event(ComboBoxBase.ON_SHOWN));
Run Code Online (Sandbox Code Playgroud)
PS:说打开的comboBox我的意思是这样的:

在我的 /metrics 页面上,我有类似的字符串
my_metric{controller="cont_a",action="act_a",le="1"} 5
my_metric{controller="cont_a",action="act_b",le="1"} 4
my_metric{controller="cont_b",action="act_c",le="1"} 3
my_metric{controller="cont_b",action="act_d",le="1"} 2
Run Code Online (Sandbox Code Playgroud)
在我的 Grafana 仪表板上,我想看到两个变量:controller和action。如果我只是通过label_values(controller)和之类的查询来定义它们label_values(action),它们将是独立的,这意味着如果"cont_a"选择了控制器,则所有 4 个操作都将可用。但我想让操作变量依赖于控制器变量,因此,如果"cont_a"选择控制器,则只有值"act_a"和"act_b"可用于操作变量。如果"cont_b"选择 ,则只有"act_c"和"act_d"。有没有办法以这种方式配置 Grafana 仪表板?
javafx-2 ×2
bdd ×1
combobox ×1
fxml ×1
grafana ×1
jasmine ×1
javascript ×1
prometheus ×1
testing ×1
unit-testing ×1