0

是否有任何函数可以用来实际传递行号和字符串以突出显示该行号中的单词。我不知道如何实现这一目标。

我能够在 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.*;  

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

2 回答 2

2

从 JTextArea 的方法开始:

  1. getLineStartOffset(...)getLineEndOffset(...)方法。
  2. 然后您可以使用该getText(...)方法获取该行的所有文本。
  3. 然后您可以使用String.indexOf(...)在文本中搜索“第一个”的位置。
  4. 现在您可以添加从行首的偏移量和 indexOf 方法来获取要在文档中突出显示的文本的位置
  5. 然后可以使用getHighlighter()文本区域的方法来获取荧光笔
  6. 终于可以用addHighlight()方法高亮单词了
于 2013-03-07T17:28:11.330 回答
0

你试过玩吗:

JTextComponent.setSelectionStart(int)、JTextComponent.setSelectionEnd(int)、JTextComponent.setSelectedTextColor(java.awt.Color)

于 2013-03-07T17:29:43.263 回答