Action d'un button affiche fichier text

Résolu
djanahana Messages postés 95 Statut Membre -  
 djanahana -
Bonjour,

je voudrai savoir svp,comment je peux ouvrir un fichier texte a partir d'une action soit un button ou même un label avec java swing,

dans mon exemple j'ai un Label "Voir les Résultats" si je clique sur ce Label je veux qu'il ouvre le fichier texte "Result.txt" par exemple

merci d'avoir lire on message

4 réponses

  1. brute Messages postés 118 Statut Membre 13
     
    tu veux que ça ouvre ton ficher .txt comment ? avec un éditeur de texte ou avec System.out.print() ??
    5
    1. djanahana Messages postés 95 Statut Membre 13
       
      salut ,avec un bloc note ,c'est juste comme si vous travail avec html et on fait lien vers un fichier il s'ouvre avec le programme qu'on définit par défaut
      0
    2. djanahana Messages postés 95 Statut Membre 13
       
      non je j'utilise java
      0
    3. djanahana Messages postés 95 Statut Membre 13
       
      merci monsieur brute pour le lien ,c'est interressant ,il me faut maintenant le comprendre pour connaitre comment modifier pour l'application notepad ,toute consiel je serai appercie

      new Thread() {
      	public void run() {
      		try {
      			BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
      			String line = "";
      			try {
      				while((line = reader.readLine()) != null) {
      					// Traitement du flux de sortie de l'application si besoin est
      				}
      			} finally {
      				reader.close();
      			}
      		} catch(IOException ioe) {
      			ioe.printStackTrace();
      		}
      	}
      }.start();


      merci
      0
  2. brute Messages postés 118 Statut Membre 13
     
    essayez ceci : ???
    new Thread() { 
     public void run() { 
      Runtime runtime = Runtime.getRuntime(); 
      runtime.exec(new String[] {"C:\Program Files\Windows NT\Accessories\wordpad.exe"} ); 
    
      /*try { 
       BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); 
       String line = ""; 
       try { 
        while((line = reader.readLine()) != null) { 
         // Traitement du flux de sortie de l'application si besoin est 
        } 
       } finally { 
        reader.close(); 
       } 
      } catch(IOException ioe) { 
       ioe.printStackTrace(); 
      }*/ 
     } 
    }.start();
    4
    1. djanahana
       
      le voila ,j'ai essaye ça est ça marche trés bien ,il me rest de faire l'action dans mon button

      je ne sais pas comment remplacer le code de cette classe comme une méthode java pour que je l'appeler dans l'action de mon button

      import java.io.IOException; 
      
      public class test_thread { 
       { 
      
       new Thread() {  
         public void run() {  
          Runtime runtime = Runtime.getRuntime();  
          try { 
         runtime.exec(new String[] {"C:\\Windows\\System32\\notepad.exe","C:\\file\\teste.txt"} ); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        }  
      
         }  
        }.start(); 
      } 
       public static  void main (String args[]) { 
         
        test_thread ta=new test_thread();  
       }  
      } 
      


      merci d'avoir lire mon message
      0
    2. djanahana
       
      si bon j'ai trouvé la solution a mon problème,

      code de la méthode test_lien qui fait le lien est
      public void test_lien() { 
      		  Runtime runtime = Runtime.getRuntime(); 
      		  try {
      			runtime.exec(new String[] {"C:\\Windows\\System32\\notepad.exe","C:\\file\\teste.txt"} );
      		} catch (IOException e) {
      			// TODO Auto-generated catch block
      			e.printStackTrace();
      		} 
      


      l'action de bouton est une appel de cette fonction
      
      jButton.addActionListener(new java.awt.event.ActionListener() {
      				public void actionPerformed(java.awt.event.ActionEvent e) {
      					test_lien();
      					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
      				}
      			});



      merci beaucoup pour votre temps et d'avoir m'aider
      0
  3. Utilisateur anonyme
     
    Salut!

    Houlala! Un Thread pour lire un fichier texte? Je pense que ce n'est pas nécessaire.

    Voici un exemple avec Swing, comme tu l'as demandé:

    package hacktrack.actionbutton;
    
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    import javax.swing.BorderFactory;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.filechooser.FileFilter;
    
    public class ActionButtonDemo extends JFrame implements ActionListener {
    	private int size;
    	private JPanel openFilePanel;
    
    	private JTextArea textFileContent;
    
    	public ActionButtonDemo() {
    		super("Action Button Demo");
    		init();
    	}
    
    	private void init() {
    		Container c = getContentPane();
    		c.setLayout(new BorderLayout());
    
    		openFilePanel = new JPanel();
    		openFilePanel.setLayout(new GridLayout(1, 3));
    		JButton btnOpenFile = new JButton("Ouvrir...");
    		btnOpenFile.addActionListener(this);
    		openFilePanel.add(btnOpenFile);
    		c.add(openFilePanel, BorderLayout.NORTH);
    
    		JPanel texFileContentPanel = new JPanel();
    		textFileContent = new JTextArea(10, 40);
    		texFileContentPanel.add(textFileContent);
    		JScrollPane jsp = new JScrollPane(texFileContentPanel);
    		jsp.setBorder(BorderFactory
    				.createTitledBorder("Contenu du fichier texte"));
    		c.add(jsp, BorderLayout.CENTER);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent ae) {
    		JFileChooser jfc = new JFileChooser();
    		jfc.setFileFilter(new FileFilter() {
    			@Override
    			public boolean accept(File f) {
    				return f.isDirectory() || f.getAbsolutePath().endsWith(".txt");
    			}
    
    			@Override
    			public String getDescription() {
    				return "Fichiers avec extension '.txt'";
    			}
    		});
    		int result = jfc.showOpenDialog(null);
    		if (result == JFileChooser.APPROVE_OPTION) {
    			File textFile = jfc.getSelectedFile();
    			try {
    				BufferedReader reader = new BufferedReader(new FileReader(
    						textFile));
    				String line;
    				StringBuilder fileContent = new StringBuilder();
    				while ((line = reader.readLine()) != null) {
    					fileContent.append(line).append("\n\r");
    				}
    				textFileContent.setText(fileContent.toString());
    			} catch (Exception e) {
    				JOptionPane.showMessageDialog(null,
    						"Impossible de lire ce fichier");
    			} 
    		}
    	}
    
    	public static void main(String[] args) {
    		ActionButtonDemo demo = new ActionButtonDemo();
    		demo.pack();
    		demo.setVisible(true);
    	}
    }
    


    ;-)
    HackTrack
    3
    1. djanahana
       
      Merci pour le code ,je vais l'utiliser dans mon programme mais dans un autre contexte,ce qu'on y entrain de dire moi est Mr brute est qu'on veut que le fichier texte s'ouvre avec notepad(bloc note)
      cette aspect est simlaire a celui lors d'une installation d'un logiciel par exemple(ou un fichier READ ME s'affiche automatiquement) ou même lorsque on a lien html vers un fichier texte .

      merci d'avoir lire mon message
      0
  4. djanahana
     
    le voila ,j'ai essaye ça est ça marche trés bien ,il me rest de faire l'action dans mon button

    je ne sais pas comment remplacer le code de cette classe comme une méthode java pour que je l'appeler dans l'action de mon button

    import java.io.IOException;

    public class test_thread {
    {

    new Thread() {
    public void run() {
    Runtime runtime = Runtime.getRuntime();
    try {
    runtime.exec(new String[] {"C:\\Windows\\System32\\notepad.exe","C:\\file\\teste.txt"} );
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    }.start();
    }
    public static void main (String args[]) {

    test_thread ta=new test_thread();
    }
    }

    merci d'avoir lire mon message
    0