JavaFX Autocomplete Curly Brackets

时间:2015-02-28 03:14:03

标签: java string javafx

我在JavaFX中创建自己的文本编辑器,我希望括号完成。就像在Netbuns中一样。我已尝试在TextArea上使用ChangeListener并检查最后一个字符是否为括号并附加如下所示的字符:

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("}");
            }
        }
    });

但由于它只检查textArea中的最后一个字符,因此对括号内括号的代码不起作用。有谁知道解决这个问题的方法?注意我使用JDK 1.7.0_55并且我的学校拒绝更新到JDK 8也可能会有所帮助。任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您应该使用anchor属性来接收插入符号的位置,而不是使用文本长度值。