Texto com cor  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
Leandro Rangel Santos
JavaGuru
[Avatar]

Membro desde: 07/07/2003 19:52:02
Mensagens: 214
Localização: Salvador
Offline

alquem sabe como eu coloco um texto colorido num JTextArea ?

Leandro Rangel Santos
Sun Certified Programmer for the java 2 Platform 1.4
Sun Certified Web Component Developer for the J2EE 1.3
Sun Certified Bussines Component Developer for J2EE 1.3
[ICQ]
Ironlynx
Moderador
[Avatar]

Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline

Uma única cor ou múltiplas cores?
Com uma única cor vc pode usar um setForeground() ;
se vc precisar de um texto multicolorido,acho q com JTextArea não dá...
...pois só suporta um único tipo de fonte/cor de texto!
Use um JEditorPane ou JTextPane q vc obterá bons resultados!

dica: Displaying Text In Multiple Styles
http://developer.java.sun.com/developer/JDCTechTips/2002/tt0821.html
[WWW]
ivanio
Smalltalk

Membro desde: 06/09/2004 16:57:37
Mensagens: 2
Offline

Teste:

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

public class Multi {
public static void main(String args[]) {

JFrame frame = new JFrame("Multiplas cores no texto");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = frame.getContentPane();
JTextPane pane = new JTextPane();
JScrollPane scrollPane = new JScrollPane(pane);
content.add(scrollPane, BorderLayout.CENTER);



// Inserindo palavras com cores
insertWordColor(pane,"teste",Color.RED);
insertWordColor(pane,"teste",Color.BLUE);
insertWordColor(pane,"teste",Color.darkGray);
insertWordColor(pane,"teste",Color.ORANGE);

insertWordColor(pane,"teste",Color.LIGHT_GRAY);
insertWordColor(pane,"teste",Color.PINK);
insertWordColor(pane,"teste",Color.RED);
insertWordColor(pane,"teste"+"
",Color.BLUE);
// "
" para pular para próxima linha


// Inserindo palavras sem cor
insertWord(pane,"Estou testando sem cor"+"
");

// Inserindo palavras com um estilo definido

// Definindo o estilo de impressao
SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setItalic(set, true);
StyleConstants.setForeground(set, Color.BLACK);
StyleConstants.setBackground(set, Color.YELLOW);

// Inserindo palavra com estilo definido
insertStyleWord(pane, "Testando com um style set", set);

frame.setSize(300, 200);
frame.show();
}


// Método para inserir uma palavra ou texto sem cor (preto)
public static void insertWord(JTextPane pane, String palavra){

SimpleAttributeSet set = new SimpleAttributeSet();
//StyleConstants.setForeground(set, Color.BLACK);
Document doc = pane.getStyledDocument();

try {
doc.insertString(doc.getLength()," "+palavra, set);

} catch (BadLocationException e) {
System.err.println("Bad location");
return;
}

}

// Método para inserir uma palavra ou texto com cor (preto)
public static void insertWordColor(JTextPane pane, String palavra,Color corword){

SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setForeground(set, corword);
Document doc = pane.getStyledDocument();

try {
doc.insertString(doc.getLength()," "+palavra, set);
StyleConstants.setForeground(set, Color.BLACK);
} catch (BadLocationException e) {
System.err.println("Bad location");
return;
}

}

// Método para inserir uma palavra ou texto usando style set
public static void insertStyleWord(JTextPane pane, String palavra, SimpleAttributeSet set){


Document doc = pane.getStyledDocument();
try {
doc.insertString(doc.getLength()," "+palavra, set);
StyleConstants.setForeground(set, Color.BLACK);
} catch (BadLocationException e) {
System.err.println("Bad location");
return;
}

}
}
[Email] [MSN]
ivanio
Smalltalk

Membro desde: 06/09/2004 16:57:37
Mensagens: 2
Offline

Para ficar melhor, sobrecarreguei os métodos ( o que dá na mesma no final):

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

public class Multi {
public static void main(String args[]) {

JFrame frame = new JFrame("Multiplas cores no texto");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = frame.getContentPane();
JTextPane pane = new JTextPane();
JScrollPane scrollPane = new JScrollPane(pane);
content.add(scrollPane, BorderLayout.CENTER);



// Inserindo palavras com cores
insertWord(pane,"teste",Color.RED);
insertWord(pane,"teste",Color.BLUE);
insertWord(pane,"teste",Color.darkGray);
insertWord(pane,"teste",Color.ORANGE);

insertWord(pane,"teste",Color.LIGHT_GRAY);
insertWord(pane,"teste",Color.PINK);
insertWord(pane,"teste",Color.RED);
insertWord(pane,"teste"+"
",Color.BLUE);
// "
" para pular para próxima linha


// Inserindo palavras sem cor
insertWord(pane,"Estou testando sem cor"+"
");

// Inserindo palavras com um estilo definido

// Definindo o estilo de impressao
SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setItalic(set, true);
StyleConstants.setForeground(set, Color.BLACK);
StyleConstants.setBackground(set, Color.YELLOW);

// Inserindo palavra com estilo definido
insertWord(pane, "Testando com um style set", set);

frame.setSize(300, 200);
frame.show();
}


// Método para inserir uma palavra ou texto sem cor (preto)
public static void insertWord(JTextPane pane, String palavra){

SimpleAttributeSet set = new SimpleAttributeSet();
//StyleConstants.setForeground(set, Color.BLACK);
Document doc = pane.getStyledDocument();

try {
doc.insertString(doc.getLength()," "+palavra, set);

} catch (BadLocationException e) {
System.err.println("Bad location");
return;
}

}

// Método para inserir uma palavra ou texto com cor (preto)
public static void insertWord(JTextPane pane, String palavra,Color corword){

SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setForeground(set, corword);
Document doc = pane.getStyledDocument();

try {
doc.insertString(doc.getLength()," "+palavra, set);
StyleConstants.setForeground(set, Color.BLACK);
} catch (BadLocationException e) {
System.err.println("Bad location");
return;
}

}

// Método para inserir uma palavra ou texto usando style set
public static void insertWord(JTextPane pane, String palavra, SimpleAttributeSet set){


Document doc = pane.getStyledDocument();
try {
doc.insertString(doc.getLength()," "+palavra, set);
StyleConstants.setForeground(set, Color.BLACK);
} catch (BadLocationException e) {
System.err.println("Bad location");
return;
}

}
}
[Email] [MSN]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team