textArea.setForeground(Color c);随便设置什么着色了,只要构造出一个Color对象了,Color还有很多常量可以使用。

解决方案 »

  1.   

    textArea中有很多文字,但是这些文字要设置成不同的颜色啊,然后显示在一个TextArea啊!
    不能只有一种颜色的
      

  2.   

    textArea.setBackguand(Color.green);
    这样!
      

  3.   

    不是设置色.
    是设置不同的文字颜色.有谁知道Highlighter这个对象怎么用吗????
      

  4.   

    TextArea只能有种色,象记事本一样的要有不同的设置,可以用JEditorPane或JTextPane
      

  5.   

    哦,JEditorPane和JTextPane怎么用啊?
    谢谢!!!!!!!!!!!!!11
      

  6.   

    这是别人写的一个例子,刚好我也再做这方面的东西,帮你贴上,你看看:
    package robocode.editor; 
    import java.awt.*;
    import java.io.*;
    import java.util.StringTokenizer;
    import javax.swing.*;
    import javax.swing.event.*; 
    public class FrameTest extends JFrame
           implements CaretListener{    JScrollPane jScrollPane1 = new JScrollPane();
       JEditorPane editorPane = null;
       RobocodeEditorKit editorKit;
       public FrameTest() {
           try {
               jbInit();
           }
           catch(Exception e) {
               e.printStackTrace();
           }
       }
       public static void main(String[] args) {
           FrameTest frameTest1 = new FrameTest();
           frameTest1.setSize(400,300);
           frameTest1.setVisible(true);
       }
       private void jbInit() throws Exception {
           editorPane = new JEditorPane();
           editorPane.setText("jEditorPane1");
           this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
           jScrollPane1.getViewport().add(editorPane, null);        try
           {
               editorPane.setCaretColor(Color.black);
               editorPane.setSelectionColor(new Color(8,36,107));
               editorPane.setName("editorPane");
               editorPane.setFont(new Font("monospaced", 0, 12));
               editorPane.setContentType("text/java");
               editorKit = new RobocodeEditorKit();
               editorPane.setEditorKitForContentType("text/java", editorKit);
               editorPane.setContentType("text/java");
               //editorKit.setEditWindow(this);
               editorPane.addCaretListener(this);
           }
           catch(Throwable e)
           {
               e.printStackTrace();
           }
       }    public void caretUpdate(CaretEvent e)
       {
           int lineend = editorPane.getDocument().getDefaultRootElement().getElementIndex(e.getDot());
           //editor.setLineStatus(lineend);
       }

      

  7.   

    package robocode.editor; import javax.swing.text.*;
    //import robocode.util.Utils; // Referenced classes of package robocode.editor:
    //            EditWindow public class JavaDocument extends PlainDocument
    {    public JavaDocument()
       {
           needsRedraw = false;
           //editWindow = null;
           editing = false;
       }    protected JavaDocument(javax.swing.text.AbstractDocument.Content c)
       {
           super(c);
           needsRedraw = false;
           //editWindow = null;
           editing = false;
       } //    public EditWindow getEditWindow()
    //    {
    //        return editWindow;
    //    }    public void insertString(int offs, String str, AttributeSet a)
           throws BadLocationException
       {
           if(!editing)
           {
               super.insertString(offs, str, a);
               return;
           }
           if(str.equals("}"))
           {
               if(getText(offs - 1, 1).equals("\t"))
               {
                   super.remove(offs - 1, 1);
                   super.insertString(offs - 1, str, a);
               } else
               {
                   super.insertString(offs, str, a);
               }
           } else
           if(str.equals("\n"))
           {
               int elementIndex = getDefaultRootElement().getElementIndex(offs);
               Element element = getDefaultRootElement().getElement(elementIndex);
               int startOffset = element.getStartOffset();
               int endOffset = element.getEndOffset();
               String elementText = null;
               elementText = getText(startOffset, endOffset - startOffset);
               int tabCount;
               for(tabCount = 0; elementText.charAt(tabCount) == '\t'; tabCount++);
               if(elementText.indexOf("{") >= 0)
                   tabCount++;
               String tabs = "";
               for(int i = 0; i < tabCount; i++)
                   tabs = tabs + "\t";            super.insertString(offs, str + tabs, a);
           } else
           {
               super.insertString(offs, str, a);
           }
       }    protected void insertUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent event, AttributeSet attributeSet)
       {
    //        if(editWindow != null)
    //            editWindow.setModified(true);
           int orgChangedIndex = getDefaultRootElement().getElementIndex(event.getOffset());
           super.insertUpdate(event, attributeSet);
           Element rootElement = getDefaultRootElement();
           javax.swing.event.DocumentEvent.ElementChange deltas = event.getChange(rootElement);
           if(deltas == null)
           {
               Element changedElement = getDefaultRootElement().getElement(orgChangedIndex);
               processMultilineComments(changedElement, false);
           } else
           {
               Element changedElements[] = deltas.getChildrenAdded();
               if(changedElements == null || changedElements.length == 0)
                   log("Unknown insert even, 0 children added.");
               for(int i = 0; i < changedElements.length; i++)
                   processMultilineComments(changedElements[i], true);        }
       }    public boolean isNeedsRedraw()
       {
           return needsRedraw;
       }    private void log(String s)
       {
           System.out.println(s);
       }    protected void postRemoveUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent event)
       {
    //        if(editWindow != null)
    //            editWindow.setModified(true);
           int orgChangedIndex = getDefaultRootElement().getElementIndex(event.getOffset());
           super.postRemoveUpdate(event);
           Element rootElement = getDefaultRootElement();
           int changedIndex = getDefaultRootElement().getElementIndex(event.getOffset());
           Element changedElement = getDefaultRootElement().getElement(changedIndex);
           javax.swing.event.DocumentEvent.ElementChange deltas = event.getChange(rootElement);
           if(deltas != null)
               processMultilineComments(changedElement, true);
           else
               processMultilineComments(changedElement, false);
       }    public void processMultilineComments(Element element, boolean isDeltas)
       {
           int elementIndex = getDefaultRootElement().getElementIndex(element.getStartOffset());
           int startOffset = element.getStartOffset();
           int endOffset = element.getEndOffset();
           String elementText = null;
      

  8.   

    try
           {
               elementText = getText(startOffset, endOffset - startOffset);
           }
           catch(BadLocationException e)
           {
               log("Error processing updates: " + e);
           }
           boolean followingLineComment = false;
           boolean previousLineComment = false;
           boolean startsComment = false;
           boolean endsComment = false;
           MutableAttributeSet a = (MutableAttributeSet)element.getAttributes();
           if(a.isDefined("inComment"))
               previousLineComment = true;
           else
           if(isDeltas)
           {
               int lastElementIndex = elementIndex - 1;
               if(lastElementIndex >= 0)
               {
                   javax.swing.text.AbstractDocument.AbstractElement lastElement = (javax.swing.text.AbstractDocument.AbstractElement)getDefaultRootElement().getElement(lastElementIndex);
                   if(!lastElement.isDefined("endsComment") && lastElement.isDefined("inComment") || lastElement.isDefined("startsComment"))
                   {
                       a.addAttribute("inComment", "inComment");
                       previousLineComment = true;
                   }
               }
           }
           followingLineComment = previousLineComment;
           int cIndex = elementText.indexOf("//");
           int eIndex;
           int sIndex;
           if(cIndex >= 0)
           {
               eIndex = elementText.lastIndexOf("*/", cIndex);
               sIndex = elementText.lastIndexOf("/*", cIndex);
           } else
           {
               eIndex = elementText.lastIndexOf("*/");
               sIndex = elementText.lastIndexOf("/*");
           }
           if(eIndex > sIndex)
           {
               followingLineComment = false;
               endsComment = true;
               startsComment = false;
           } else
           if(sIndex > eIndex)
           {
               followingLineComment = true;
               startsComment = true;
               endsComment = false;
           }
           if(followingLineComment)
           {
               if(startsComment)
               {
                   if(!a.isDefined("startsComment"))
                   {
                       a.addAttribute("startsComment", "startsComment");
                       setFollowingLinesCommentFlag(startOffset, true);
                   }
               } else
               if(a.isDefined("startsComment"))
                   a.removeAttribute("startsComment");
               if(a.isDefined("endsComment"))
               {
                   a.removeAttribute("endsComment");
                   setFollowingLinesCommentFlag(startOffset, true);
               } else
               if(isDeltas)
                   setFollowingLinesCommentFlag(startOffset, true);
           } else
           {
               if(endsComment)
               {
                   if(!a.isDefined("endsComment"))
                   {
                       a.addAttribute("endsComment", "endsComment");
                       setFollowingLinesCommentFlag(startOffset, false);
                   }
               } else
               if(a.isDefined("endsComment"))
                   a.removeAttribute("endsComment");
               if(a.isDefined("startsComment"))
               {
                   a.removeAttribute("startsComment");
                   setFollowingLinesCommentFlag(startOffset, false);
               } else
               if(isDeltas)
                   setFollowingLinesCommentFlag(startOffset, false);
           }
       } //    public void setEditWindow(EditWindow newEditWindow)
    //    {
    //        editWindow = newEditWindow;
    //    }    public void setFollowingLinesCommentFlag(int offset, boolean commentFlag)
       {
           int elementIndex = getDefaultRootElement().getElementIndex(offset);
           elementIndex++;
           for(boolean done = false; !done;)
           {
               Element e = getDefaultRootElement().getElement(elementIndex);
               if(e == null)
               {
                   done = true;
               } else
               {
                   MutableAttributeSet a = (MutableAttributeSet)e.getAttributes();
                   if(commentFlag)
                   {
                       if(a.isDefined("inComment"))
                       {
                           done = true;
                       } else
                       {
                           a.addAttribute("inComment", "inComment");
                           needsRedraw = true;
                       }
                       if(a.isDefined("endsComment"))
                           done = true;
                   } else
                   {
                       if(!a.isDefined("inComment"))
                       {
                           done = true;
                       } else
                       {
                           a.removeAttribute("inComment");
                           needsRedraw = true;
                       }
                       if(a.isDefined("startsComment"))
                           done = true;
                   }
                   elementIndex++;
               }
           }    }    public void setNeedsRedraw(boolean newNeedsRedraw)
       {
           needsRedraw = newNeedsRedraw;
       }    public boolean getEditing()
       {
           return editing;
       }    public void setEditing(boolean editing)
       {
           this.editing = editing;
       }    public boolean needsRedraw;
    //    public EditWindow editWindow;
       private boolean editing;
    }
      

  9.   

    何必那么麻烦,如果只是简单的应用,我教你一招---------HTML大法jEditorPane1.setContentType("text/html");
    jEditorPane1.setText("<html><body><font color=red>Dekn</font><br><font color=blue>Dekn dekn dekn</font></body></html>");
    试试吧,绝对爽