Action de bouton avec java

ghaouar Messages postés 174 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 22 avril 2012 - 28 avril 2011 à 13:18
 sayabni - 17 oct. 2012 à 21:58
Bonjour,

j'ai créer un bouton avec icône et lors de l'exécution de programme le bouton ne fait aucune action ??? en tenir compte que le programme de ne contient aucune erreur .
voici le code :
// declaration
private final JMenuItem ouvrir = new JMenuItem();

voila la partie :

JButton ouvrir = new JButton ( new ImageIcon ( "D:\\importer.gif" ) ) ;
ouvrir.setBounds(30, 50, 230, 60);
menuBar.add ( ouvrir ) ;
ouvrir.addActionListener((ActionListener)this);

Par contre si je change le code ( je supprime le bouton avec l'icône ) il sa marche voila comment

ouvrir.setBounds(30, 50, 230, 60);
menuBar.add ( ouvrir ) ;
ouvrir.addActionListener((ActionListener)this);
ouvrir.setText("Ouvrir");


SVP aidez moi je veut faire une bouton avec icone qui fait l'action.

8 réponses

Niidhogg Messages postés 42 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 11 octobre 2015 1
29 avril 2011 à 14:31
Ou sinon tu as les toolbars tout simplement...
http://download.oracle.com/javase/tutorial/uiswing/components/toolbar.html

private JToolBar toolBar = new JToolBar();
private JButton precedent = new JButton(new ImageIcon("iconePrecedent"));

precedent.addActionListener(al);
toolBar.add(precedent);


Avec un toolBar.setFloatable(false); si tu veut pas quel bouge.
Sinon tu peut aussi mettre une JToolBar dans ta JMenuBar:

private JToolBar toolBar = new JToolBar();
private JButton precedent = new JButton(new ImageIcon("iconePrecedent"));

private JMenuBar menuBar = new JMenuBar();
private JMenu menu = new JMenu("Fichier");
private JMenuItem menuItem = new JMenuItem("Ouvrir");

menu.add(menuItem);
toolBar.add(precedent);

menuBar.add(menu);
menuBar.add(toolBar);


En ajoutant dans l'ordre que tu veut les éléments bien sur et en toujours en faisant: toolBar.setFloatable(false); si tu veut pas quel bouge ;)

Niidhogg,
1
Niidhogg Messages postés 42 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 11 octobre 2015 1
28 avril 2011 à 15:04
JMenuItem ça serrait pas un bouton qui se met dans une JMenuBar par hasard ? Je comprend pas pourquoi tu veut mettre un JButton dedans :s
0
ghaouar Messages postés 174 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 22 avril 2012
28 avril 2011 à 15:27
je veux faire de bouton avec icône pour améliorer mon interface graphique et lui rendre plus attirante dans mon projet.
0
Niidhogg Messages postés 42 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 11 octobre 2015 1
28 avril 2011 à 16:07
Alors on va y aller peut a peut ;)

D'abord tu as une JMenuBar c'est ta bar de menu.
private JMenuBar menuBar = new JMenuBar();


Dans cette barre de menu tu doit mettre des JMenu c'est tes différents menus qui seront directement visible sur la barre.
private JMenu fichier = new JMenu("Fichier");

Il faut pas oublier de rajouter ce menu a la bar de menu:
menuBar.add(fichier);


Quand tu cliquera sur ce menu tu aurra une liste déroulante avec plusieurs éléments, ces éléments sont des JMenuItem.
private JMenuItem ouvrir = new JMenuItem(new ImageIcon("Ouvrir", "D:\\importer.gif"));

Il faut pas oublier de rajouter cette item au menu:
fichier.add(ouvrir);


Et enfin tu peut ajouter le listener:
ouvrir.addActionListener(this);


Et voici le code complet:

private JMenuBar menuBar = new JMenuBar();
private JMenu fichier = new JMenu("Fichier");
private JMenuItem ouvrir = new JMenuItem("Ouvrir", new ImageIcon("D:\\importer.gif"));

ouvrir.addActionListener(this);
fichier.add(ouvrir);
menuBar.add(fichier);


J'ai pas essayer mais normalement ça marche ;)

Niidhogg,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ghaouar Messages postés 174 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 22 avril 2012
28 avril 2011 à 20:42
Salut,
un grand merci Monsieur, j'ai exécuté le code après la modification comme tu me dit et ca marche. tous les boutons (ouvrir, enregistrer, ....) sont caché dans le menu déroulant ( Fichier ).

est ce que il y a t'il une méthode pour refaire ca mais les boutons doivent être visible dans l'accueil de l'interface sans le menu déroulant .
et aussi je veux ajouter un boutons pour l'impression et un boutons pour le retour en arriérée ( précédent )
0
Niidhogg Messages postés 42 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 11 octobre 2015 1
29 avril 2011 à 14:05
Ben si tu veut pas de Liste déroulante ben tu met pas de JMenuItem dans ton JMenu et tu met un MouseListener sur ton JMenu ;)

private JMenuBar menuBar = new JMenuBar();
private JMenu precedent = new JMenu("Precedent");

precedent.addMouseListener(ml);
menuBar.add(precedent);


Par contre si tu veut mettre une icone à ton JMenu il va falloir que tu créé une classe hériter de JMenu. Ou sinon tu peut aussi mettre un JButton dans ta MenuBar:

private JMenuBar menuBar = new JMenuBar();
private JButton precedent = new JButton(new ImageIcon("iconePrecedent"));

precedent.addActionListener(al);
menuBar.add(precedent);


Le rendu est plus beau et plus adapter à ce que tu veut faire je penses, mais il est difficile de lui donner la taille qu'ont veut, donc dans les deux cas i va certainement falloir que tu face une classe hériter ;)
0
ghaouar Messages postés 174 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 22 avril 2012
29 avril 2011 à 17:07
Merci bien pour l'aide, je doit faire tous ca puis te dire le résultat après l'exécution.
0
svp jai un code qui parcourt mon bureau mais quand je selectionne une fichier ".txt" ce dernier ne s'ouvre pas . aidez moi svp et merci

voici mon code :

import java.io.File;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;

class parcourir
{
public static void main(String[] arg) throws IOException {
JFileChooser dialogue = new JFileChooser(new File("."));
PrintWriter sortie;
File fichier;

if (dialogue.showOpenDialog(null)==
JFileChooser.APPROVE_OPTION) {
fichier = dialogue.getSelectedFile();
sortie = new PrintWriter
(new FileWriter(fichier.getPath(), true));
sortie.println(arg[0]);
sortie.close();
}
}
}
0
Rejoignez-nous