我有一个如下的文本区域,
我需要突出显示或选择所有文本“Highlight me”。我没有找到任何方法来突出显示文本区域中的文本。此外,我在JavaFX中找不到任何其他API可以突出显示特定文本或字母的出现,例如Swing中的JTextArea。有人可以建议我如何在文本区域突出显示字符串吗?或者除了JavaFX中的这个文本区域之外,还有其他API可用吗?
我的代码:
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();
}
}
预期输出:
线条应以以下任何颜色高亮显示。“突出显示我”事件应突出显示如下:,
你可以从这里得到帮助。但限制是您需要使用jdk8。
问题内容: 我可以高亮显示一些文本,使其从一个值开始,然后从另一个值结束,如下所示,但颜色为黄色吗? “” JTextPane 高亮显示 文本“” 谢谢。 问题答案: 通常,有几种可能性,具体取决于您对“突出显示”的真正含义:-) 通过在文档级别更改任意文本部分的样式属性来突出显示,例如 通过textPane级别上的荧光笔突出显示:
我正在制作一个JavaFX应用程序,在启动时,TextField有默认文本,上面写着“请输入这个值”,用户应该删除该文本并输入一个值。但是,每次单击、拖动和高亮显示所有文本是相当痛苦的。当用户单击文本字段时,是否有一种方法可以自动突出显示所有文本以便于删除,但只有当文本等于默认消息时才可以?我研究了这个,没有找到任何东西,任何帮助都是非常感谢的。
问题内容: 这更多是一个假设性的问题,我正在为正在计划的项目集思广益,并且很好奇是否有人知道任何API或方法可以在任何窗口上立即获取突出显示的文本,例如从浏览器或文字处理器。它还可能有一个只有在按下时才能读取的键盘命令(类似于CTRL + C,将所选文本添加到剪贴板) 我们将非常感谢您对此有什么API的任何了解。 问题答案: 您可以使用JNA 在前台窗口上实际模拟(复制操作),然后读取剪贴板中的内
问题内容: 我遇到的问题是诸如’/’或’!’之类的字符 要么 ‘。’ 显示在左侧。 我只需要从右到左绘制文本,但是使用标准的,西方的,英语从左到右的符号表示文本字符。 如果不手动呈现文本,这可能吗? 问题答案: 我无法产生您的问题,能否请您使用我的SSCCE用于左侧显示。 从代码
问题内容: 我正在尝试突出显示与查询匹配的文本,但是我不知道如何使标记显示为HTML而不是文本。 当前输出: Java 脚本 所需的输出: Java 脚本 问题答案: 这是我简单的twoliner辅助方法: 它返回一个跨度,其中所请求的零件以标签突出显示。如果需要,可以简单地将其修改为使用其他标签。 更新: 为避免唯一键丢失警告,这是一个基于跨度并为匹配的零件设置fontWeight样式的解决方案
我正在使用RichTextFX的StyleClassedTextArea的一个实例,但在突出显示时似乎无法更改文本本身的颜色。 还有一个类似的问题:RichTextFx更改选定的文本颜色和行号背景,这对我很有帮助,但答案只更改实际的突出显示颜色,而不是突出显示时的文本本身。我希望突出显示的文本本身是白色的,以便更具可读性。 另一个问题的答案如下: 我尝试了其他方法来改变文本本身的颜色,例如: 但我