我正在尝试在javafx上为我的组合框添加一个监听器 这是我的组合框的代码:
ObservableList<String> options =
FXCollections.observableArrayList(
"Option1",
"Option2",
"Option3",
"Option4"
);
final ComboBox comboBox;
public ComboBox getComboBox() {
return comboBox;
}
public ComboBoxStatus() {
this.comboBox = new ComboBox(options);
comboBox.setValue("option1");
}
我希望添加如下内容: 每当某些事情发生变化时,如option1 to option2调用一个函数并做某事
如上所示,我已将默认值添加到option1
。所以当我将当前值(option1
作为默认值)更改为例如,我希望调用一个函数。 option2
。
在我的主程序中,我有while循环,我想从我的组合框中读取当前选定的值。
如何阅读当前选定的值?
答案 0 :(得分:0)
尝试这样的事情
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
int duration(struct timeval start, struct timeval stop) {
return (stop.tv_sec - start.tv_sec) * 1000 + (stop.tv_usec - start.tv_usec) / 1000;
}
int *zero_square_matrix(int size, int *ms, int nb_init) {
struct timeval start, stop;
int *M = malloc(size*size*sizeof(int));
gettimeofday(&start, NULL);
int i,j;
for(int k=0; k<nb_init; k++) {
for (i=0; i<size; i++) {
for (j=0; j<size; j++) {
M[i*size + j] = 0;
}
}
}
gettimeofday(&stop, NULL);
*ms = duration(start, stop);
return M;
}
int *zero_square_matrix_rev(int size, int *ms, int nb_init) {
struct timeval start, stop;
int *M = malloc(size*size*sizeof(int));
gettimeofday(&start, NULL);
int i,j;
for(int k=0; k<nb_init; k++) {
for (i=0; i<size; i++) {
for (j=0; j<size; j++) {
M[j*size + i] = 0;
}
}
}
gettimeofday(&stop, NULL);
*ms = duration(start, stop);
return M;
}
int main(int argc, char **argv) {
int nb_tests;
int size;
if (argc == 1 || argc > 3) {
printf("usage %s SIZE [NB_TESTS]\n", argv[0]);
return 1;
}
if (argc == 2) {
size=atoi(argv[1]);
nb_tests = 100;
} else if (argc == 3) {
size=atoi(argv[1]);
nb_tests = atoi(argv[2]);
}
int *M;
int ms1,ms2;
printf("SIZE \t\t\t NORMAL \t\t\t REVERSE\n");
for (int i=size-3; i<size+3; i+=1) {
M = zero_square_matrix(i, &ms1, nb_tests);
M = zero_square_matrix_rev(i, &ms2, nb_tests);
printf("%dx%d \t\t\t %d \t\t\t %d\n", i, i, ms1, ms2);
free(M);
}
return 0;
}