salut!
s'il vous plait j'ai un gros probleme.
j'ai ecrit un éditeur de texte et le but est d'appliquer une couleur à certains mots clefs comme "#" ,"end","add","lw"............
mais je ne sais pas par où commencer .
si quelqu'un a une idée qu'il m'aide s'il vous plait.
voici le code de mon éditeur de texte:
import javax.swing.*;
public abstract class Interface_Finestra_principale extends JFrame {
public abstract void aggiungi_jcomponenti();
}
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.*;
public class Finestra_Principale extends Interface_Finestra_principale{
private JTextComponent editor;
private JPopupMenu popup ;
private JFileChooser fileChooser;
class PopupListener extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
if(e.isPopupTrigger())
popup.show(e.getComponent(), e.getX(), e.getY());
}
public void mouseReleased(MouseEvent e)
{
if(e.isPopupTrigger())
popup.show(e.getComponent(), e.getX(), e.getY());
}
PopupListener()
{
super();
}
}
public Finestra_Principale(){
super();
popup = new JPopupMenu();
fileChooser = new JFileChooser();
editor = this.createEditor();
editor.setFont(new Font("Verdana", 0, 12));
PopupListener popupListener= new PopupListener();
editor.addMouseListener(popupListener);
JComponent centerPanel = createCenterComponent();
getContentPane().add("Center", centerPanel);
fileChooser = new JFileChooser();
setDefaultCloseOperation(0);
this.setTitle("SyntaxEditor");
this.setSize(500,400);
}
ActionListener openAction = new ActionListener() {
public void actionPerformed(ActionEvent e) {
openText();
}
};
ActionListener saveAction = new ActionListener() {
public void actionPerformed(ActionEvent e){
saveText();
}
};
public JMenuItem[] createJMenuItem() {
JMenuItem[]jmi={new JMenuItem("Open"),new JMenuItem("Save"),new JMenuItem("Save As")};
return jmi;
}
public JMenuBar createJMenuBar() {
JMenuBar MenuBar=new JMenuBar();
JMenu file=new JMenu("File");
file.setMnemonic(KeyEvent.VK_F);
JMenuItem[] jmi=this.createJMenuItem();
jmi[0].setMnemonic(KeyEvent.VK_O);
jmi[0].setAccelerator(javax.swing.KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
jmi[2].setMnemonic(KeyEvent.VK_S);
jmi[2].setAccelerator(javax.swing.KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
jmi[0].addActionListener(openAction);
file.addSeparator();
//jmi[1].addActionListener(saveAction);
jmi[2].addActionListener(saveAction);
for(int i=0;i<3;i++){
file.add(jmi[i]);
}
MenuBar.add(file);
return MenuBar;
}
public JToolBar createJToolBar() {
JToolBar jtb=new JToolBar();
JButton newbutton = new javax.swing.JButton();
JButton openbutton = new javax.swing.JButton();
JButton savebutton = new javax.swing.JButton();
openbutton.setIcon(new ImageIcon("/PROGETTO/open.jpg"));
openbutton.setToolTipText("Apri un file di testo");
openbutton.addActionListener(openAction);
savebutton.setIcon(new ImageIcon("/PROGETTO/Save.jpg"));
savebutton.setToolTipText("Salva con nome");
savebutton.addActionListener(saveAction);
jtb.add(openbutton);
jtb.add(savebutton);
return jtb;
}
public JTextComponent createEditor(){
JTextArea txt=new JTextArea();
char c=txt.getFocusAccelerator();
return txt;
}
public JComponent createCenterComponent(){
if(editor == null)
editor = this.createEditor();
return new JScrollPane(editor);
}
public void openText(){
int response = fileChooser.showOpenDialog(new Finestra_Principale());
if(response == 0)
try{
File f = fileChooser.getSelectedFile();
Reader in = new FileReader(f);
editor.read(in, null);
setTitle(f.getName() + ".txt");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Errore nel caricamento file.", "Errore", 0);
}
try{
File f = fileChooser.getSelectedFile();
java.io.Reader in = new FileReader(f);
editor.read(in, null);
setTitle(f.getName() + ".txt");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Errore nel caricamento file.", "Errore", 0);
}
}
public void saveText(){
int response = fileChooser.showSaveDialog(new Finestra_Principale());
if(response == 0)
try{
File f = fileChooser.getSelectedFile();
Writer out = new FileWriter(f);
editor.write(out);
setTitle(f.getName() + " - NOTEPAD 2.0");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Errore nel salvataggio file.", "Errore", 0);
}
}
public void aggiungi_jcomponenti() {
JMenuBar jmb=this.createJMenuBar();
JToolBar jtb=this.createJToolBar();
this.setJMenuBar(jmb);
this.add(jtb,BorderLayout.NORTH);
}
public void visualizza(){
this.setVisible(true);
}
}
merci infiniment
Afficher la suite