Código Text Area

como eu formato o texto de um text area em formato de cóidigo(Ex.:Quando postamos um tópico e inserimos nele código - clicamos na opção de Code para o texto se transformar em formato código) como faço isso ?

não entendi exatamente sua pergunta. Qual formato de código seria?
Você pode usar por exemplo o NumberFormat (java.text.NumberFormat). Exemplo:

[code] import java.text.NumberFormat;
import java.util.Locale;

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

        // get format for default locale

        NumberFormat nf1 = NumberFormat.getInstance();
        System.out.println(nf1.format(1234.56));

        // get format for German locale

        NumberFormat nf2 =
            NumberFormat.getInstance(Locale.GERMAN);
        System.out.println(nf2.format(1234.56));
    }
}

[/code]
att.

Estou inserindo em um text Area comando java gostaria que esse texto tivesse o formato de código java
Ex de um texto em formato de código.:

public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Testes().setVisible(true); } }); }

Entendi. Não conheço nada que pode fazer automaticamente isto. Mas não é difícil fazer, só vai dar um pouco de trabalho.
Os componentes Swing aceitam HTML. Então você terá que varrer o texto a ser formatado como código, produzir um HTML a partir do texto varrido e jogar este HTML como conteúdo do componente Swing.
Exemplo de um código com uso de HTML em Swing:

[code]import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class HTMLButton extends JApplet {
private JButton b = new JButton(""
+ “Hello!
Press me now!”);

public void init() {
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getContentPane().add(
new JLabel("" + “Kapow!”));
// Force a re-layout to include the new label:
validate();
}
});
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(b);
}

public static void main(String[] args) {
run(new HTMLButton(), 200, 500);
}

public static void run(JApplet applet, int width, int height) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(applet);
frame.setSize(width, height);
applet.init();
applet.start();
frame.setVisible(true);
}
}[/code]
boa sorte.

estou fazendo aplicação desktop ,como faria?

olá,
não importa se é desktop. Você vai ter que pegar token por token (a menor parte comprensível de uma linguagem), definir como este deve ser apresentador e gerar o HTML correspondente. Um exemplo em pseudocódigo:

String tudo=new String("");
tudo+="<html>"
enquando existem tokens
    token=pega token atual()
    tipo=verifica qual o tipo de token(token)
    String html_token=gera formatação html para o token(token,tipo)    -- segundo o formato aceito pelos componentes Swing
    tudo+=html_token
fim
campoSwing.setText(tudo)       -- seta tudo no campo

uma página de referência pode ser: http://java.sun.com/docs/books/tutorial/uiswing/components/html.html
para obter os tokens você deverá reconhecê-los em nível de linguagem (análise léxica mesmo).
certamente existem formas melhores e mais rápidas (em tempo de execução) para fazer isto.
conseguiu pegar a idéia básica?

até+

Num TextArea você não faz mesmo.

Agora, num JTextPane, você faz. Aliás, você pode baixar esse editor aqui:
http://www.guj.com.br/posts/list/48736.java

Que já tem a formatação para java pronta. Ele pode ser facilmente embarcado em outras aplicações.

Valeu pela dica ViniGodoy :slight_smile:
eu não conhecia esse ANTLR… parece muito bom! :smiley: