ho trovato del codice che svolge questa funzione :
codice:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.regex.*;
import javax.swing.*;
import javax.swing.text.*;
public class JSyntaxHighlight extends JTextArea implements KeyListener
{
Highlighter evidenziatore;
Highlighter.HighlightPainter effetto;
Pattern pattern;
Matcher matcher;
String keyWords[]= { "abstract","boolean","break","byte","case","catch","char","class","const","continue","default","do","double","else","extends","final","finally","float","for","goto","if","implements","import","instanceof","int","interface","long","native","new","package","private","protected","public","return","short","static","super","switch","syncronized","this","throw","throws","transient","try ","void","volatile ","while" };
public JSyntaxHighlight()
{
super();
evidenziatore = getHighlighter();
effetto = new DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW);
addKeyListener(this);
}
public void keyReleased(KeyEvent ke) {}
public void keyPressed(KeyEvent ke) {}
public void keyTyped(KeyEvent ke)
{
evidenziatore.removeAllHighlights();
try
{
for(int i = 0; i < keyWords.length; i++)
{
pattern = Pattern.compile("\\b" + keyWords[i] + "\\b");
matcher = pattern.matcher(getText());
while(matcher.find())
evidenziatore.addHighlight(matcher.start() , matcher.end() , effetto);
}
}
catch(Exception e) {}
}
}
codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
public class Prova extends JFrame implements ActionListener {
JSyntaxHighlight hight;
JPanel panel;
JButton crea,exit;
public Prova() {
setTitle( "Inserimento dati per una simulazione da testo" );
setSize( 600, 500 );
panel = new JPanel(new BorderLayout());
//areaTesto.setSize(new Dimension(600,400) );
//JScrollPane scrollingArea = new JScrollPane(areaTesto);
hight= new JSyntaxHighlight();
crea=new JButton("Controlla e Crea");
exit=new JButton("Exit");
//quando si passa il mouse sopra il crea appare questa scritta
crea.setToolTipText("Verifica i dati e avvia la simulazione");
exit.setToolTipText("Chiude la finestra");
//aggiunge crea e label al pannello
panel.add(crea , BorderLayout.NORTH);
panel.add(exit , BorderLayout.SOUTH);
panel.add(hight, BorderLayout.CENTER);
getContentPane().add( panel );
// Posiziona al centro dello schermo.
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frame = getSize();
setLocation(
(screen.width - frame.width) / 2,
(screen.height - frame.height) / 2
);
//registra evento click sul crea
crea.addActionListener(this);
exit.addActionListener(this);
}
//crea ascoltatore di eventi
public void actionPerformed( ActionEvent event )
{
Object source = event.getSource();
if(source==crea){ }
if(source==exit){ System.exit(-1); }
}
//main
public static void main(String args[]) {new Prova().show(); }
}