Archived
0

implement cancel edit on Esc key pressed

This commit is contained in:
iMoHax
2014-08-08 12:25:01 +04:00
parent 350f85ab9a
commit 48a81522e0

View File

@@ -6,6 +6,7 @@ import javafx.geometry.Point2D;
import javafx.geometry.Pos; import javafx.geometry.Pos;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;
import javafx.scene.control.Tooltip; import javafx.scene.control.Tooltip;
import javafx.scene.input.KeyCode;
import javafx.util.converter.NumberStringConverter; import javafx.util.converter.NumberStringConverter;
import java.text.DecimalFormat; import java.text.DecimalFormat;
@@ -73,12 +74,22 @@ public class NumberField extends TextField {
setTooltip(null); setTooltip(null);
} }
}); });
setOnKeyPressed((e) -> {
if (e.getCode().equals(KeyCode.ESCAPE)) {
editCancel();
e.consume();
}
});
setOnAction((e) -> parseNumber()); setOnAction((e) -> parseNumber());
focusedProperty().addListener((ob, o, n) -> {if (o) parseNumber();}); focusedProperty().addListener((ob, o, n) -> {if (o) parseNumber();});
setAlignment(Pos.BASELINE_RIGHT); setAlignment(Pos.BASELINE_RIGHT);
} }
private void editCancel() {
setText(converter.toString(getValue()));
getParent().requestFocus();
}
private void parseNumber(){ private void parseNumber(){
String text = getText(); String text = getText();
if (text == null || text.isEmpty()) { if (text == null || text.isEmpty()) {