Utiliser un fichier de configuration

patRachel Messages postés 14 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 10 novembre 2006 - 27 sept. 2006 à 11:42
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 29 sept. 2006 à 22:04
salut s'il vous plait j'ai un fichier  .conf (fichier de configuration) dont le contenu est:




categorie commentaire(



keywords:("#"*EOL)



niveau :0



couleur: Color.gray



)



categorie etichette(



keywords:(+":")



niveau :1



couleur: Color.red



)



categorie instruction(



keywords:("add","addi","sub","nop","beq","blt","bgt","jump","jr","lw","sw","syscall", "move")



niveau:2



couleur: Color.blue



)


categorie default(


keywords: +SP


niveau:0


couleur: Color.black


)







je veux utiliser ce fichier de configuration pour que mon editeur de texte  reconnaisse et colore les  keywords  à chaque tant que je tape Enter pour aller à la ligne .comment est ce que je vais faire?
voilà le code de mon editeur 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

8 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
27 sept. 2006 à 14:13
Salut,

ba parse ton fichier et applique la couleur

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
patRachel Messages postés 14 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 10 novembre 2006
27 sept. 2006 à 16:15
que veux dire ba parse
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
27 sept. 2006 à 16:50
Salut,
oki je refais
il te suffit de parser ton fichier et appliquer la couleur
soit de le lire et des que tu tombes sur une ligne qui commence par couleur: tu extrais la couleur soit Color.blue mais bon si tu veux un conseil change ton histoire de couleur par la valeur hexa(comme les couleurs HTML mais sans le #) comme ca tu n'auras pas de limitation et tu pourras etre plus libre quand à la conversion chaine vers couleur java soit en faisant :

couleur: FF0000 //rouge
couleur: 00FF00 //vert
couleur: 0000FF //bleue
couleur: FFFF00 //jaune
couleur: FFFFFF //blanc
couleur: 000000 //noir
.......

et niveau code il te suffit de faire :
Color red = getColor("FF0000");
Color green = getColor("00FF00");
Color blue  = getColor("0000FF");
Color yellow  = getColor("FFFF00");
Color white = getColor("FFFFFF");
Color black =  getColor("000000");

public static Color getColor(String color){
    int n = 0;
    try {
        n = Integer.parseInt(color, 16);
    } catch (Exception e) {
        return Color.BLACK;
    }
    return new Color(n);
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
patRachel Messages postés 14 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 10 novembre 2006
29 sept. 2006 à 12:39
merci Twinuts  .tu es un ange je vais essailler et voir si ça fonctione .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
29 sept. 2006 à 16:08
hummmm .... Twinuts mon ptit ange !! ;)
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 sept. 2006 à 16:21
Salut,

heuuuuuuuuu je suis l'ange de personne moua.....(rassurez moi zetes hétéro hein, hein??lol)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
29 sept. 2006 à 19:57
ben patRachel ca peut etre patricia rachelle !! dans ce cas pas de doute possible !!


sinon moi super_toinou c est un peu plus chaud de se faire passer pour une nana , mais avec une ptite jupe et les jambes rasées j suis sur que j dois etre super sexy !!! :D
bref trève de plaisanteries !! vendredi soir, partons à la chasse à la belette !!
++ Toinou
PS1 : je ne suis pas transformiste
PS2 : je ne suis pas macho
PS3 : je ne suis pas beauf (malgré ce que la derniere phrase pourrai faire penser)
PS4: si jamais une blonde à gros seins lit ce poste ...... tu m intéresse !!! :D
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 sept. 2006 à 22:04
Salut,

looooool ouep idem pour la blonde (brune et rousse tu m'interrese aussi).......

/////////////////////////
pris ici
http://www.javafr.com/infomsg_JTEXTAREA_818306.aspx

Re : JTextArea
par : [auteurdetail.aspx?ID=866382 patRachel]
le 25/09/2006 16:48:32



merci beaucoup .à la prochaine et que Dieu te benisse

moi je suis en Italie à l'université degli studi dell'insubria

Et pour ajouter je suis camerounais et du prenom Patrice

merci encore

donc c'est ni patricia ni rachelle lol :P

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Rejoignez-nous