如何向combobox java添加监听器

时间:2017-12-22 13:48:03

标签: java javafx combobox listener

我正在尝试在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循环,我想从我的组合框中读取当前选定的值。

如何阅读当前选定的值?

1 个答案:

答案 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;
}