IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Ouvrir un fichier dans une jtextarea en cliquant sur un bouton


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Par défaut Ouvrir un fichier dans une jtextarea en cliquant sur un bouton
    Bonjour,
    J'ai deux problèmes actuellement et je compte beaucoup sur vous pour m'aider.
    J'ai une interface avec un bouton ouvrir et enregistrer avec un jpanel contenant une jtextarea.
    je souhaite que quand je clique sur le bouton ouvrir, il me propose de choisir un fichier(ficher texte) et affiche ce fichier(son contenu) dans ma jtextarea; et quand je clique sur le bouton enregistrer, il enregistre le contenu de la jtextarea dans sur le disquedur(de préference en fichier texte).
    Merci d'avance.

    J'ai un début de code que j'ai bidouillé qui me génère plein d'erreur. Je ne sais plus quoi faire.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    ouvrir.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        Panel onglet=new Panel();
        onglet.setSize(500, 50);
        onglet.setLayout(getLayout());
        int rep = fileDialog.showOpenDialog(this);
        if (rep == FileDialog.APPROVE_OPTION) {	
          File file = fileDialog.getSelectedFile();
          if (file.exists()) {
            try {
              FileInputStream in = new FileInputStream(file);
              byte[] bytes = new byte[in.available()];
              in.read(bytes);
              getJTextArea().setText(new String(bytes));
              scrollPane = new JScrollPane(getJTextArea());
              onglet.add(scrollPane);
              tableauDocuments.add("Document"+ nbredoc ,onglet);
            } catch (FileNotFoundException e1) {
              System.out.println("erreur ici");
              e1.printStackTrace();
            } catch (IOException e1) {
              System.out.println("non ici");
              e1.printStackTrace();
            }	
          } 
        }
      }
     
      private javax.swing.JTextArea getJTextArea() {
        if(jTextArea == null) {
          jTextArea = new javax.swing.JTextArea();
        }
        return jTextArea;
      }
    });

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
     
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
    import javax.swing.filechooser.FileFilter;
     
     
    public class Test implements ActionListener {
    	private JFrame frame;
    	private JButton open, save;
    	private JTextArea texte;
    	private FileFilter filter;
     
    	public Test() {
    		frame = new JFrame("Mon éditeur");
     
    		open = new JButton("Ouvrir");
    		open.addActionListener(this);
    		frame.add(open, BorderLayout.NORTH);
     
    		texte = new JTextArea();
    		texte.setAutoscrolls(true);
    		frame.add(texte, BorderLayout.CENTER);
     
    		save = new JButton("Sauvegarder");
    		save.addActionListener(this);
    		frame.add(save, BorderLayout.SOUTH);
     
    		filter = new FileFilter() {
     
    			@Override
    			public String getDescription() {
    				return "Fichiers textes";
    			}
     
    			@Override
    			public boolean accept(File f) {
    				if(f.getName().endsWith("txt"))return true;
    				return false;
    			}
    		};
     
    		frame.setSize(250, 400);
    		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    		frame.setVisible(true);
    	}
     
     
    	public void saveFile(String contenu, String file) {
    		try {
    			PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(file)));
     
    			writer.write(contenu);
     
    			writer.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
     
    	public String readFile(String file) {
    		try {
    			BufferedReader reader = new BufferedReader(new FileReader(file));
    			String ligne;
    			StringBuffer fichier = new StringBuffer();
     
    			while((ligne = reader.readLine()) != null){
    				fichier.append(ligne);
    				fichier.append("\n");			
    			}
    			reader.close();
     
    			return fichier.toString();		
    		} catch (IOException e) {
    			return e.getMessage();
    		}
    	}
     
    	public void actionPerformed(ActionEvent e) {
    		if(e.getSource()==open){
    			JFileChooser chooser = new JFileChooser();
    			chooser.setFileFilter(filter);
     
    			int returnVal = chooser.showOpenDialog(frame);
     
    			if(returnVal==JFileChooser.APPROVE_OPTION){
    				String s = readFile(chooser.getSelectedFile().getPath());
    				texte.setText(s);				
    			}
    		}else if(e.getSource()==save){
    			JFileChooser chooser = new JFileChooser();
    			chooser.setFileFilter(filter);
     
    			int returnVal = chooser.showSaveDialog(frame);
     
    			if(returnVal==JFileChooser.APPROVE_OPTION){
    				String s = chooser.getSelectedFile().getPath();
    				s = s.endsWith(".txt")?s:s+".txt";
     
    				saveFile(texte.getText(), s);
    			}
    		}
    	}
     
    	public static void main(String[] args) {
    		new Test();
    	}
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Par défaut
    Merci,
    je le teste et te tient au courant.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Par défaut
    Merci pour le code; en revanche j'ai encore un petit souci.
    Dans out.write(contenu), j'ai mis jtextarea.getText() pour qu'il me retourne le contenu de la jtextarea.
    Le probleme c'est que je ne sais pas comment lui dire de que jtextarea est celui dans lequel on se trouve(la souris se trouve).
    Au fait j'ai un un jtabbedpane avec plusieurs onglets contenant des jtextarea et je veux qu'il enregistre le contenu de celui dans lequel je suis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    try { 
      FileWriter lu = new FileWriter(monFichier); 
      BufferedWriter out = new BufferedWriter(lu);
      out.write(jtextarea.getText()); 
      out.close(); 
    } catch (IOException er) {
    ;}

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Par défaut
    Personne pour m'aider?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Tu peux mettre un bouton par Tab.
    Ou alors un truc du style si le Tab 1 est sélectionné le textarea est le textarea1.
    Ou enfin, tu fais un JTextArea active_textearea; que tu change à chaque changement de tab avec un ChangeListener.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Par défaut
    Pourrais tu m'expliquer un peu plus stp.
    Justement j'essaye d'utiliser " si tab 1 alors jtextarea est jtextarea1" avec:

    JTabbedPane tableauDocuments;
    tableauDocuments.getComponentAt( tableauDocuments.getSelectedIndex()).getComponentAt(0, 0);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir un fichier dans une nouvelle fenêtre
    Par paradeofphp dans le forum ASP.NET
    Réponses: 17
    Dernier message: 20/11/2007, 16h31
  2. Réponses: 5
    Dernier message: 17/01/2007, 13h52
  3. placer un texte dans une textarea en cliquant sur un bouton
    Par BernardT dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/11/2005, 18h17
  4. Réponses: 4
    Dernier message: 14/11/2005, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo