Dans mon programme, j'ai créé un menu édition où il y a les fonctions classiques : couper, copier, coller,Supprimer et Sélectionner tout.
Néanmoins, j'ai quelques problèmes.
En effet, j'ai mis des raccourcis clavier pour chaque fonction (Ctrl+X, Ctrl+C, Ctrl+V, Ctrl+Delete et Ctrl+A) qui fonctionnent. Mais lorsque je clique dessus dans le menu, l'action ne s'effectue pas.
J'ai pourtant mis des ActionListener mais ça ne change rien.
Voici le code pour ce menu :
JMenu menuEdition = new JMenu ();
menuEdition.setEnabled(true);
menuEdition.setText("Edition");
menuEdition.setLabel("Edition");
JMenuItem jmiCouper = new JMenuItem ();
jmiCouper.setText("Couper");
jmiCouper.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK)) ;
jmiCouper.addActionListener(new java.awt.event.ActionListener(){
publicvoid actionPerformed (java.awt.event.ActionEvent evt){
jmiCouper.cut();
}
});
menuEdition.add(jmiCouper);
JMenuItem jmiCopier = new JMenuItem ();
jmiCopier.setText("Copier");
jmiCopier.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK)) ;
jmiCopier.addActionListener(new java.awt.event.ActionListener(){
publicvoid actionPerformed (java.awt.event.ActionEvent evt){
jmiCopier.copy();
}
});
menuEdition.add(jmiCopier);
JMenuItem jmiColler = new JMenuItem ();
jmiColler.setText("Coller");
jmiColler.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK)) ;
jmiColler.addActionListener(new java.awt.event.ActionListener(){
publicvoid actionPerformed (java.awt.event.ActionEvent evt){
jmiColler.paste();
}
});
menuEdition.add(jmiColler);
JMenuItem jmiSupprimer = new JMenuItem ();
jmiSupprimer.setText("Supprimer");
jmiSupprimer.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, InputEvent.CTRL_MASK)) ;
jmiSupprimer.addActionListener(new java.awt.event.ActionListener(){
publicvoid actionPerformed (java.awt.event.ActionEvent evt){
jmiSupprimer.delete();
}
});
menuEdition.add(jmiSupprimer);
menuEdition.addSeparator();
JMenuItem jmiToutSelect = new JMenuItem ();
jmiToutSelect.setText("Sélectionner tout");
jmiToutSelect.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK)) ;
jmiToutSelect.addActionListener(new java.awt.event.ActionListener(){
publicvoid actionPerformed (java.awt.event.ActionEvent evt){
jmiToutSelect.selectAll();
}
});
menuEdition.add(jmiToutSelect);
De plus, j'ai créé dans mon programme le JSplitPane suivant :
[ Lien ]
Dans le menu Fichier, je souhaite, comme sur iTunes, ajouter des bibliothèques de fichiers sur la partie gauche et ajouter des lignes à la table se trouvant dans la partie pour ajouter des fichiers à une même bibliothèque.
Le code de ma fonction est le suivant :
JMenuBar barreMenu = new JMenuBar ();
barreMenu.setPreferredSize (new java.awt.Dimension(205, 19));
JMenu menuFichier = new JMenu ();
menuFichier.setText ("Fichier");
menuFichier.setName ("Fichier");
JMenuItem jmiNouvelleListe = new JMenuItem ();
jmiNouvelleListe.setEnabled (true);
jmiNouvelleListe.setText ("Ajouter un contexte");
jmiNouvelleListe.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_N, InputEvent.CTRL_MASK)) ;
jmiNouvelleListe.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Object saisie; // Variable contenant ce que l'utilisateur saisit comme nom de liste de lecture
saisie=JOptionPane.showInputDialog (null,"Entrez le nom de la liste de lecture","Nouvelle liste de lecture",JOptionPane.QUESTION_MESSAGE);
addRowContent(saisie,null, null, null, null, null, null);
// Object[] rowline = {"", ""+saisie+"", "", "", "", "", ""};
// dtmBibliotheque.addRow(rowline);
}
}
);
menuFichier.add(jmiNouvelleListe);
JMenuItem jmiAjoutDoc = new JMenuItem ();
jmiAjoutDoc.setEnabled (true);
jmiAjoutDoc.setText ("Ajouter un document à la bibliothèque");
jmiAjoutDoc.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_O, InputEvent.CTRL_MASK)) ;
jmiAjoutDoc.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
/*
Object saisie; // Variable contenant ce que l'utilisateur saisit comme nom de liste de lecture
saisie=JOptionPane.showInputDialog (null,"Entrez le nom de la liste de lecture","Nouvelle liste de lecture",JOptionPane.QUESTION_MESSAGE);
addRowContent(saisie,null, null, null, null, null, null);*/
JFileChooser chooser = new JFileChooser(".");
chooser.setAccessory(new ExplorateurDocument(chooser));
chooser.showOpenDialog(null);
//addRowContent();
}
}
);
menuFichier.add(jmiAjoutDoc);
Merci d'avance pour votre aide