JavaFX中的Backspace按钮

时间:2019-07-02 16:15:42

标签: java javafx calculator backspace

我正在使用JavaFX创建一个计算器项目。在计算器中,我有一个退格按钮。我尝试了旧方法,像这样:

@Autowired

但这可能不可行,可能是因为版本不同。因此,我想知道是否有什么方法可以在JavaFX中实现或创建退格按钮。

这是我的FXML控制器:

strBuild.deleteCharAt(display.getText().length()-1);

1 个答案:

答案 0 :(得分:1)

传统上,退格键只删除最后一个字符,因此您需要做的就是检查display.getText().isEmpty()是否存在,然后通过拉出最右边的字符(最后键入的字符)来继续操作

else if(event.getSource() == backspace)
{
    if(!display.getText().isEmpty())
        display.setText(display.getText().substring(0,display.getText().length()-1));
}

else if(event.getSource() == backspace)
{
    if(!display.getText().isEmpty())
        display.setText(display.getText().replaceAll(".$", ""));
}

甚至

import org.apache.commons.lang.StringUtils;

...

else if(event.getSource() == backspace)
{
    if(!display.getText().isEmpty())
        display.setText(StringUtils.chop(display.getText()));
}

或者如果您想保留StringBuilder

else if(event.getSource() == backspace)
{
    if(!display.getText().isEmpty())
        display.setText(new StringBuilder(display.getText()).deleteCharAt(display.getText().length()-1).toString());
}

如果您忘记添加支票,则会得到StringIndexOutOfBoundsException