JavaFX自动完成花括号
我正在用JavaFX制作我自己的文本编辑器,我想用括号完成。就像上网本一样。我尝试在文本区域使用ChangeListener,检查最后一个字符是否为括号,并按如下方式附加字符:JavaFX自动完成花括号,java,string,javafx,Java,String,Javafx,我正在用JavaFX制作我自己的文本编辑器,我想用括号完成。就像上网本一样。我尝试在文本区域使用ChangeListener,检查最后一个字符是否为括号,并按如下方式附加字符: textArea.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(final ObservableValue<? extends Str
textArea.textProperty().addListener(new ChangeListener<String>()
{
@Override
public void changed(final ObservableValue<? extends String> observable, final String oldValue, final String newValue)
{
if (textArea.getText().charAt(textArea.getText().length()-1) == '{')
{
textArea.appendText("}");
}
}
});
但由于它只检查文本区域中的最后一个字符,因此对于括号内有括号的代码不起作用。有人知道解决这个问题的方法吗?请注意,我使用的是JDK1.7.055,而我的学校拒绝更新到JDK8,这可能会有所帮助。任何帮助都将不胜感激。您应该使用属性来接收插入符号的位置,而不是使用文本长度值