Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX自动完成花括号_Java_String_Javafx - Fatal编程技术网

JavaFX自动完成花括号

JavaFX自动完成花括号,java,string,javafx,Java,String,Javafx,我正在用JavaFX制作我自己的文本编辑器,我想用括号完成。就像上网本一样。我尝试在文本区域使用ChangeListener,检查最后一个字符是否为括号,并按如下方式附加字符: textArea.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(final ObservableValue<? extends Str

我正在用JavaFX制作我自己的文本编辑器,我想用括号完成。就像上网本一样。我尝试在文本区域使用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("}");
            }
        }
    });
但由于它只检查文本区域中的最后一个字符,因此对于括号内有括号的代码不起作用。有人知道解决这个问题的方法吗?请注意,我使用的是JDK1.7.055,而我的学校拒绝更新到JDK8,这可能会有所帮助。任何帮助都将不胜感激。

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