突出显示JavaFx文本区域中的文本
我有一个如下所示的文本区域 我需要突出显示或选择所有文本突出显示我。我找不到任何方法来突出显示文本区域中的文本。另外,我在JavaFX中找不到任何其他API突出显示Swing中出现的特定文本或类似JTextArea的字母。有谁能建议我如何在文本区域突出显示字符串吗?或者JavaFX中除了这个文本区域之外还有其他API可用吗 我的代码:突出显示JavaFx文本区域中的文本,java,javafx,javafx-2,textarea,Java,Javafx,Javafx 2,Textarea,我有一个如下所示的文本区域 我需要突出显示或选择所有文本突出显示我。我找不到任何方法来突出显示文本区域中的文本。另外,我在JavaFX中找不到任何其他API突出显示Swing中出现的特定文本或类似JTextArea的字母。有谁能建议我如何在文本区域突出显示字符串吗?或者JavaFX中除了这个文本区域之外还有其他API可用吗 我的代码: public class FXTextArea extends Application { /** * @param args *
public class FXTextArea extends Application {
/**
* @param args
* the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage primaryStage) {
Group root = new Group();
final TextArea textArea = TextAreaBuilder.create().prefWidth(390)
.wrapText(true).build();
ScrollPane scrollPane = new ScrollPane();
scrollPane.getStyleClass().add("noborder-scroll-pane");
scrollPane.setContent(textArea);
scrollPane.setFitToWidth(true);
scrollPane.setPrefWidth(390);
scrollPane.setPrefHeight(180);
Button buttonLoad = new Button("Load");
buttonLoad.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
FileChooser fileChooser = new FileChooser();
// Set extension filter
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter(
"TXT files (*.txt)", "*.txt");
fileChooser.getExtensionFilters().add(extFilter);
// Show save file dialog
File file = fileChooser.showOpenDialog(primaryStage);
if (file != null) {
textArea.setText(readFile(file));
}
System.out.println(textArea.getText(0, 30));
textArea.selectRange(0, 30);
}
});
VBox vBox = VBoxBuilder.create().children(buttonLoad, scrollPane)
.build();
root.getChildren().add(vBox);
primaryStage.setScene(new Scene(root, 400, 300));
primaryStage.show();
}
private String readFile(File file) {
StringBuilder stringBuffer = new StringBuilder();
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader(file));
String text;
while ((text = bufferedReader.readLine()) != null) {
stringBuffer.append(text);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(FXTextArea.class.getName()).log(Level.SEVERE,
null, ex);
} catch (IOException ex) {
Logger.getLogger(FXTextArea.class.getName()).log(Level.SEVERE,
null, ex);
} finally {
try {
bufferedReader.close();
} catch (IOException ex) {
Logger.getLogger(FXTextArea.class.getName()).log(Level.SEVERE,
null, ex);
}
}
return stringBuffer.toString();
}
}
预期产出:
线条应以任何颜色高亮显示,如下所示。突出显示me事件应突出显示如下:
你可以向我寻求帮助。但是限制是您需要使用jdk8。这不能用于Java7FX库吗?CodeFX是第三方jar。如果我错了,请纠正我。是的,CodeFX是第三方jar。抱歉,这不能与Java 7.Ok一起使用。谢谢你的回答。在使用CodeFx时,我需要三思而后行,因为我目前正在使用Java7+1为可能的解决方案。如果您不想使用CodeFX,那么您必须使用编码自定义文本区域的方法。是的。。想想看。。谢谢。请举例说明您的预期输出?@Suzon添加了预期输出的屏幕截图。希望这很好: