0

行番号とその行番号の単語を強調表示する文字列を実際に渡すために使用できる関数はありますか?これを達成する方法がわかりませんでした。

JtextAreaにファイルをロードできます。

「Hello.txt」を読み込んでいるファイルには、次のものが含まれています。

Hello, This
is my first
lesson in Java
Hope You Have a nice 
Time.

1行目の「最初」の文字列を強調表示する関数が必要です。

私のコード:

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 に答える