Pourquoi tu dis ça ? 8O
Sinon je mettrais à côté de pièce joint un bouton "ok" qui permettrais d'ouvrir le PDF par exemple. Ce serait plus simple :).
Version imprimable
Pourquoi tu dis ça ? 8O
Sinon je mettrais à côté de pièce joint un bouton "ok" qui permettrais d'ouvrir le PDF par exemple. Ce serait plus simple :).
je dis ça, parce que votre façon de penser est tordue! en ts cas "les gens pense des autres ce qu'ils pensent d'eux même"!
ok supposons que j'ai mis un boutton, comment je le programme pour que le pdf s'ouvre?
Faut bien comprendre que nous on fait ça pour t'aider toi. On prend du temps pour toi. Et quand on te pose des questions, tu ne prends pas la peine d'y répondre. Donc au bout d'un moment c'est un peu énervant oui..
Maintenant, bouton ou pas bouton, la problématique est la même.
Comment tu fais pour que ton JtextField/JButton réagisse au click de la souris et appelle ta méthode ? Montre nous le code qui fait ça.
ouii c fait, en suite?
Tu créés la méthode du ActionListener et dedans fait le code qui faut pour que ton bouton sache où aller récupérer ton PDF ;)Code:
1
2 boutonOk= new Button("ok"); boutonOk.addActionListener(this);
hhhh vous n'avez encore compris, que je ne connais pas le code qui me permet d'ouvrir le pdf!! mais ce n'est pas possible!
Ce ne sera que la troisième fois. Montre moi ton code pour que je puisse t'aider.Code:
1
2 Desktop d = Desktop.getDesktop(); d.open(new File("chemin_pdf"));
Que dieu vous protège, dites moi de quel code vous parlé? j'ai partagé deux code, celui de la récupération du chemin:
et celui de l'ouverture "ne fonctionne pas":Code:
1
2
3
4
5
6
7
8
9
10 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser jFileChooser1=new JFileChooser(); int i=jFileChooser1.showOpenDialog(this); if(i==jFileChooser1.APPROVE_OPTION) pièce.setText(jFileChooser1.getSelectedFile().getPath()); else pièce.setText("aucun fichier n'a été selectionné"); }
Code:
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 private void pièceActionPerformed(java.awt.event.ActionEvent evt) { Desktop desktop = null; desktop = Desktop.getDesktop(); String path = pièce.getText(); File fPath=new File(path); if (desktop.isSupported(Desktop.Action.OPEN)){ if(!fPath.exists()){ System.out.println("le fichier n'existe pas"); } if(!fPath.isDirectory()){ System.out.println("ceci n'est pas un lien"); } try { desktop.open(new File(path)); } catch (IOException ex) { Logger.getLogger(DossierPatient.class.getName()).log(Level.SEVERE, null, ex); } } System.out.println("c pas supporté"); }
Là on parle du code qui permet d'ajouter des événements sur tes composant graphique. Le code qui ouvre le PDF on te l'a déjà donné.
Bon allé je suis sympa.
Tu devrait pouvoir adapter ça dans ton code.Code:
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 package test; import java.awt.Desktop; import java.awt.Dimension; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.File; import java.io.IOException; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class App { JFrame frame; JPanel panel; JTextField text; public App() { init(); } private void init() { frame = new JFrame("Open file"); panel = new JPanel(); text = new JTextField(); frame.setMinimumSize( new Dimension( 200, 200 )); frame.setLocationRelativeTo( null ); frame.add( panel ); panel.add( text ); text.setText("C:\\panda.jpg"); text.addMouseListener( new MyMouseListener() ); frame.setVisible( true ); } class MyMouseListener implements MouseListener { @Override public void mouseClicked(MouseEvent e) { try { Desktop.getDesktop().open( new File( text.getText() )); } catch (IOException f) { } } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } } }
A noter la ligne en rouge, qui permet de dire à ton JTextField qu'il y à une classe qui est à l'écoute des actions de la souris qui ont lieux sur lui.
Par contre si tu ne sait pas comment marche les Listener en Java, je te conseille plus que vivement de lire quelques cours dessus..
Cdt.
ça ne marche pas chez moi... par contre ça marche chez vous...!!!
"ça ne marche pas chez moi... par contre ça marche chez vous...!!!" quand je lui ai envoyé le code il m'a dit "par contre ça marche chez moi" :D
ce n'est pas de ma faute si le code ne marche pas chez moi, n'est ce pas?
C'est forcément lié à quelque chose. Je pense juste sincèrement que c'est limite n'importe quoi... Je m'excuse mais moi tant qu'on y met pas du sien je n'y mettrais pas du mien. Bonne fin de journée.
j'adore votre principe :ptdr: bonne fin de journée :mouarf:
Comprends bien que je ne peux pas tout simplement prendre ton code, le coller dans mon IDE et le lancer !
Quand je dis que ça marche chez moi, c'est que j'ai pris les éléments principaux du ton code, et que je les ai adaptés à un petit cas simple comme je te l'ai présenté plus haut ! Comment veux tu que je teste ton code en entier...
Donc on reprends !
Ton problème viens du fait que private void pièceActionPerformed(java.awt.event.ActionEvent evt) ne veux absolument rien dire tel quel !
Comment le JTextField sait que cette méthode est celle à appeler lors d'un click de la souris ??? Y'a rien de magique en programmation tu sais. Mais comme tu t'obstines à ne pas répondre aux questions que l'on te pose, et que tu ne prends même pas la peine d'essayer de comprendre ce que je te dis, on tourne en rond depuis 1h..
mais si, je vous ai repondu, j'ai dit que je suis sous netBeans je génère le MouseClickd automatiquement, mais voila je viens de fouiller dans le code, et j'ai trouver l'instruction demandée:Code:pièce.addMouseListener(new java.awt.event.MouseAdapter()
Code:
1
2
3
4
5
6
7
8 private void pièceMouseClicked(java.awt.event.MouseEvent evt) { try { Desktop.getDesktop().open(new File(pièce.getText())); } catch (IOException ex) { Logger.getLogger(DossierPatient.class.getName()).log(Level.SEVERE, null, ex); } }
Mais pourquoi tu utilises cette méthode "pièceMouseClicked" qui ne veut strictement rien dire, et pourquoi ne pas utiliser les méthode que l'on te demande t'implémenter ??
Du genre "mouseClicked(MouseEvent e)" ?
Allech .. pourquoi mon frêre?
il faut justifier ....
problèmes:
- le mode de codage des fichiers sources (UTF8, ISO XXXX) ... pas un gros problème ...
- les accents dans les noms de classe: dûment prévus par la norme (les noms de fichiers devraient être transformés de manière portable) ... et pas implantée par les outils :aie:
- on doit faire des noms qui sont aisément lisibles ... sauf quand on est français et qu'on lit un programme écrit en roumain (bon ça va encore mais l'estonien ça dépasse mes capacités!)