Action d'un button affiche fichier text [Résolu/Fermé]

Signaler
Messages postés
82
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
6 avril 2015
-
 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

Messages postés
112
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
19 juillet 2012
13
tu veux que ça ouvre ton ficher .txt comment ? avec un éditeur de texte ou avec System.out.print() ??
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
82
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
6 avril 2015
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
Messages postés
112
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
19 juillet 2012
13
si tu utilises du php, tu pourrais utiliser
exec();
=> https://www.php.net/manual/fr/function.exec.php
Messages postés
82
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
6 avril 2015
13
non je j'utilise java
Messages postés
112
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
19 juillet 2012
13
Messages postés
82
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
6 avril 2015
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
Messages postés
112
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
19 juillet 2012
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();
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
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
Messages postés
618
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
13 juillet 2013
971
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
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
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