Java 根据JtextArea中给定的行号高亮显示字符串
是否有任何函数可用于实际传递行号和字符串以突出显示该行号中的单词。我不知道如何做到这一点 我可以在JtextArea上加载我的文件 正在加载的文件“Hello.txt”包含:Java 根据JtextArea中给定的行号高亮显示字符串,java,string,swing,jtextarea,swing-highlighter,Java,String,Swing,Jtextarea,Swing Highlighter,是否有任何函数可用于实际传递行号和字符串以突出显示该行号中的单词。我不知道如何做到这一点 我可以在JtextArea上加载我的文件 正在加载的文件“Hello.txt”包含: Hello, This is my first lesson in Java Hope You Have a nice Time. 我希望函数突出显示第1行中的字符串“first” 我的代码: import javax.swing.*; import java.util.*; import java.io.
Hello, This
is my first
lesson in Java
Hope You Have a nice
Time.
我希望函数突出显示第1行中的字符串“first”
我的代码:
import javax.swing.*;
import java.util.*;
import java.io.*;
public class OpenTextFileIntoJTextArea
{
public static void main(String[]args)
{
try
{
FileReader readTextFile=new FileReader("C:\\Hello.py");
Scanner fileReaderScan=new Scanner(readTextFile);
String storeAllString="";
while(fileReaderScan.hasNextLine())
{
String temp=fileReaderScan.nextLine()+"\n";
storeAllString=storeAllString+temp;
}
JTextArea textArea=new JTextArea(storeAllString);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
JScrollPane scrollBarForTextArea=new JScrollPane(textArea,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
JFrame frame=new JFrame("Open text file into JTextArea");
frame.add(scrollBarForTextArea);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
catch(Exception exception)
{
System.out.println("Error in file processing");
}
}
}
从JTextArea的方法开始:
getLineStartOffset(…)
和getLineEndOffset(…)
方法getText(…)
方法获取该行的所有文本String.indexOf(…)
在文本中搜索“first”的位置getHighlighter()
方法获取荧光笔addHighlight()
方法高亮显示单词你有没有试过玩弄: JTextComponent.setSelectionStart(int), JTextComponent.setSelectionEnd(int),
JTextComponent.setSelectedTextColor(java.awt.Color)参见示例及其应用。另外,在设置可见之前,请阅读并在
JFrame
上不要调用setSize
使用适当的LayoutManager
和/或覆盖getPreferredSize()
并在JFrame
上调用pack()
。我是Java新手,您可以使用步骤中描述的代码向我展示一个示例。ThanksI将首先创建一个方法,如highlightText(textArea,row,text)
。然后在方法中,您尝试一步一步地实现代码。