如何制作一个按钮基于JavaFx中的其他4个按钮执行4种不同的操作?

时间:2015-05-09 13:38:48

标签: javafx

当用户按下学生或教师的按钮,然后将对象详细信息输入到基于他们按下的对象按钮打开的几个文本字段中时,我试图这样做,然后按添加按钮,它将基于他们在开头按下的对象按钮将特定对象(学生或教师)添加到数组中。

我有按钮的处理程序,他们所做的只是添加相应的textFields。我只需要在用户按下学生按钮时这样做,添加按钮就会知道将学生对象添加到对象数组中。

这是创建textFields的按钮的处理程序

这是我到目前为止所有的处理程序。底部是GUI的样子。我只需要添加按钮就可以根据点击顶部的按钮添加parttimestudent,fulltimestudent等等。

        ftf.setOnAction(actionEvent -> {
            varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4);
            varsColumn.getChildren().addAll(vars3, vars4);
        });

        ptf.setOnAction(actionEvent -> {
            varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4);
            varsColumn.getChildren().addAll(vars3, vars4);

        });

        pts.setOnAction(actionEvent -> {
            varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4);
            varsColumn.getChildren().addAll(vars1, vars2);
        });

        fts.setOnAction(actionEvent -> {
            varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4);
            varsColumn.getChildren().addAll(vars1, vars2); 
        });

http://i.imgur.com/irsT2xA.png

编辑:想到解决方案。我将制作4个不同的添加按钮,这些按钮将出现在屏幕上的相同位置,基于点击顶部的相应对象按钮,将对象添加到数组中。

1 个答案:

答案 0 :(得分:0)

创建不同的处理程序:

EventHandler<ActionEvent> addStudentHandler = e -> {
    // code to add student...
};

EventHandler<ActionEvent> addFacultyHandler = e -> {
    // code to add faculty...
};

// etc...

现在在其他处理程序中,只需为添加按钮选择适当的处理程序:

ftf.setOnAction(actionEvent -> {
    varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4);
    varsColumn.getChildren().addAll(vars3, vars4);
    addButton.setOnAction(addFacultyHandler);
});

fts.setOnAction(actionEvent -> {
    varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4);
    varsColumn.getChildren().addAll(vars1, vars2); 
    addButton.setOnAction(addStudentHandler);
});