我正在使用JavaFX创建一个计算器项目。在计算器中,我有一个退格按钮。我尝试了旧方法,像这样:
@Autowired
但这可能不可行,可能是因为版本不同。因此,我想知道是否有什么方法可以在JavaFX中实现或创建退格按钮。
这是我的FXML控制器:
strBuild.deleteCharAt(display.getText().length()-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