Action d'un button affiche fichier text

Résolu/Fermé
djanahana Messages postés 82 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 6 avril 2015 - 17 juil. 2012 à 01:30
 djanahana - 22 juil. 2012 à 12:36
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

brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
17 juil. 2012 à 10:33
tu veux que ça ouvre ton ficher .txt comment ? avec un éditeur de texte ou avec System.out.print() ??
5
djanahana Messages postés 82 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 6 avril 2015 13
17 juil. 2012 à 17:59
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
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
18 juil. 2012 à 10:06
si tu utilises du php, tu pourrais utiliser
exec();
=> https://www.php.net/manual/fr/function.exec.php
0
djanahana Messages postés 82 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 6 avril 2015 13
18 juil. 2012 à 10:20
non je j'utilise java
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
18 juil. 2012 à 10:57
0
djanahana Messages postés 82 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 6 avril 2015 13
18 juil. 2012 à 23:46
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
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
Modifié par brute le 19/07/2012 à 11:09
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
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
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
Utilisateur anonyme
21 juil. 2012 à 22:16
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
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
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