2013-03-28 90 views
1

對於我的應用程序,我將在文本框中添加語法高亮顯示。我不確定的是如何在一個盒子裏做多色而不是隻有一種顏色。TextArea多色文本

我知道我可以做到這一點,但它將所有的文本設置爲一種顏色。

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package ssccee; 

import java.awt.Color; 
import java.awt.Font; 
import javax.swing.JFrame; 
import javax.swing.JTextArea; 

/** 
* 
* @author ryannaddy 
*/ 
public class Sscce extends JFrame{ 

    JTextArea txt = new JTextArea(); 

    public Sscce(){ 

     setLayout(null); 

     txt.setBounds(3, 3, 300, 200); 
     add(txt); 

     Font font = new Font("Verdana", Font.BOLD, 12); 
     txt.setFont(font); 
     txt.setForeground(Color.BLUE); 

     txt.setText("\n \n JTextArea font & color change example"); 
    } 

    public static void main(String[] args){ 

     Sscce jtxt = new Sscce(); 
     jtxt.setSize(313, 233); 
     jtxt.setTitle("JTextArea font & color settings"); 
     jtxt.show(); 

    } 
} 

那麼,我該如何做到這一點?

回答

0

A JTextArea是純文本組件。它可以用不同的字體顯示文本,但所有的文本都是相同的字體。你會想要使用像JSyntaxPane

一個非常簡單的使用和擴展支持少數語言的JEditorKit。主要目標是讓支持語法高亮的Java Swing編輯器變得很容易。

+1

怎麼樣'JTextPane'? –

+0

@RyanNaddy你也許可以得到這個工作,但我認爲這不容易。在[如何使用編輯器窗格和文本窗格](http://docs.oracle.com/javase/tutorial/uiswing/components/editorpane.html#recap)上有一個演示應用程序,您可以查看它以瞭解如何文本在JTextPane中被樣式化。 –