package jp.ac.aiit.jointry.services.picture.paint.ctrl; import java.net.URL; import java.util.ResourceBundle; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.ColorPicker; import javafx.scene.paint.Color; import jp.ac.aiit.jointry.services.picture.paint.PaintApplication; public class ColorController implements Initializable, ChangeListener<Color> { @FXML private ColorPicker picker; @FXML protected void selectColor(ActionEvent event) { PaintApplication.getModel().setColor(picker.getValue()); } @Override public void initialize(URL url, ResourceBundle rb) { PaintApplication.getModel().addColorListener(this); PaintApplication.getModel().setColor(Color.RED); } @Override public void changed(ObservableValue ov, Color oldValue, Color newValue) { if (!picker.getValue().equals(newValue)) { picker.setValue(newValue); picker.fireEvent(new ActionEvent()); //setValueだけではUIが更新されない } } }