Accueil > Forum > > > > evenement touche suppr et souri
evenement touche suppr et souri
mardi 6 novembre 2007 à 16:54:29 |
evenement touche suppr et souri

nasriOM
|
Je suis en train de programmer un petit logiciel et je bloque sur certain point.
Mon logiciel sera un logiciel de dessin, je fais du drag and drop
d'élèments et j'aimerai pouvoir les supprimmer avec la touche Suppr
mais je n'arrive pas à créer la méthode.
Sauriez vous comment je pourrais gerer les évenements du clique de la
souris et du clavier. j'aimerai que en cliquant une fois sur une image
on puisse la selectionné puis en tapant sur la touche
suppr(keyEvent.VK_DELETE) quelle se supprime.
Pouvez vous m'aider à résoudre mon problème.
voilà mon code: import java.awt.BorderLayout; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import java.awt.FlowLayout; import java.awt.event.MouseAdapter; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; publicclass Test2 extends JFrame implements MouseMotionListener{ JLabel[] label = new JLabel[100]; //Copies de l'image JPanel p ;//notre panel principal qui contient les images int nbCopie=0; //nombre de copies existantes public Test2(){//constructeur qui créé la fenetre principale super("drag and drop"); p = new JPanel(null); createCopy(); //on ajoute une copie au panel this.getContentPane().add(p); this.setSize(800,600); this.setVisible(true); } publicstaticvoid main(String[] args){ new Test2(); } publicvoid createCopy(){// créé une nouvelle copie de l'image label[nbCopie]=new JLabel(new ImageIcon("logo.png")); //initialise l'image label[nbCopie].setBounds(0,0,120,160); // initialise sa position aux coordonnéees 0,0 label[nbCopie].addMouseMotionListener(this);//ajoute un mousemotionlistener pour détecter le drag n drop p.add(label[nbCopie]);//on ajoute la copie au panel p.repaint();//on redessine le pa nel nbCopie++; //incrémente le nombre de copies existantes label[nbCopie]=new JLabel(new ImageIcon("image.gif")); //initialise l'image label[nbCopie].setBounds(60,0,120,160); // initialise sa position aux coordonnéees 0,0 label[nbCopie].addMouseMotionListener(this);//ajoute un mousemotionlistener pour détecter le drag n drop p.add(label[nbCopie]);//on ajoute la copie au panel p.repaint();//on redessine le panel nbCopie++; //incrémente le nombre de copies existantes } private JTextField champDeTexte; void DialogueEtiquette(String titre){
JButton bouton = new JButton("OK"); bouton.addActionListener((ActionListener)this); champDeTexte = new JTextField(20); champDeTexte.addActionListener((ActionListener)this); JPanel panneau = new JPanel(); panneau.add(bouton); getContentPane().add(new JLabel("Donnez l'étiquette"), BorderLayout.NORTH); getContentPane().add(champDeTexte, BorderLayout.CENTER); getContentPane().add(panneau, BorderLayout.SOUTH); pack(); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit() .getScreenSize();
setLocation((screenSize.width-getSize().width)/2,(screenSize.height-getSize().height)/2); setVisible(true); } publicvoid keyPressed(KeyEvent event) { int keyCode = event.getKeyCode(); if(keyCode == keyEvent.VK_DELETE) { } } publicvoid mouseDragged(MouseEvent e){ //lorsque qu'on fais du drag n drop sur une copie //si la derniere copie créé a été bougée (coordonnées 0,0), //on en créé une nouvelle qui sert de modele if(label[nbCopie-1].getX() != 0 && label[nbCopie-1].getY()!=0) createCopy(); JLabel temp=(JLabel)e.getSource(); //créé une référence vers la copie sur laquelle on a cliqué temp.setBounds(temp.getX()+e.getX()-60,temp.getY()+e.getY()-80,120,160); //déplace la copie sur laquelle je fais du drag n drop } publicvoid mouseMoved(MouseEvent e){ try{} catch(Exception err){ System.out.println("Erreur" + err);}; }}
|
|
mercredi 7 novembre 2007 à 16:51:13 |
Re : evenement touche suppr et souri

the_wwt
|
Réponse acceptée !
Bonjour, quiite à balancer du code... Je me suis amusé un peu ( sachant que ce n'est sans doute pas la bonne solution, mais ça peut t'aider). Cordialement, Pierrick
import java.awt.Color; import java.awt.Dimension; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.util.ArrayList; import java.util.List; import java.util.Random;
import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;
public class TestMe extends JFrame implements KeyListener, MouseListener, MouseMotionListener { private static final long serialVersionUID = 1L; private List<JLabel> selection = new ArrayList<JLabel>(); private Random random = new Random(); private ImageIcon icon = new ImageIcon("logo.gif"); private JPanel p;
public TestMe() { super("D`N`D"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(800, 600); this.addKeyListener(this); this.addMouseListener(this); p = new JPanel(null); for (int i = 0; i < 100; i++) createCopyAleatory(); this.getContentPane().add(p); Dimension screenSize = java.awt.Toolkit.getDefaultToolkit() .getScreenSize();
setLocation((screenSize.width - getSize().width) / 2, (screenSize.height - getSize().height) / 2); this.setVisible(true); }
public static void main(String[] args) { new TestMe(); }
public void createCopyAleatory() { JLabel label = new JLabel(icon); label.setBounds(random.nextInt(getSize().width - icon.getIconWidth()), random.nextInt(getSize().height - icon.getIconHeight()), icon .getIconWidth(), icon.getIconHeight()); label.addMouseListener(this); label.addMouseMotionListener(this); p.add(label); p.repaint(); }
public void mouseDragged(MouseEvent e) { for (JLabel label : selection) { label.setLocation(label.getX() + e.getX(), label.getY() + e.getY()); } }
public void mouseMoved(MouseEvent e) { }
public void mouseClicked(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { if (e.getSource() instanceof JLabel) { JLabel label = (JLabel) e.getSource(); if (!selection.contains(label)) label.setBorder(BorderFactory.createEtchedBorder(Color.GREEN, Color.CYAN)); } }
public void mouseExited(MouseEvent e) { if (e.getSource() instanceof JLabel) { JLabel label = (JLabel) e.getSource(); if (!selection.contains(label)) label.setBorder(BorderFactory.createEmptyBorder()); } }
public void mousePressed(MouseEvent e) { if (e.getSource() instanceof JLabel) { JLabel label = (JLabel) e.getSource(); if (!selection.contains(label)) { if (!e.isControlDown()) { for (JLabel labelSelected : selection) { labelSelected.setBorder(BorderFactory .createEmptyBorder()); } selection = new ArrayList<JLabel>(); } label.setBorder(BorderFactory.createLineBorder(Color.BLUE, 2)); selection.add(label); } else { if (e.isControlDown()) { label.setBorder(BorderFactory.createEmptyBorder()); selection.remove(label); } else { for (JLabel labelSelected : selection) { labelSelected.setBorder(BorderFactory .createEmptyBorder()); } selection = new ArrayList<JLabel>(); label.setBorder(BorderFactory.createLineBorder(Color.BLUE, 2)); selection.add(label); }
} } }
public void mouseReleased(MouseEvent event) { }
public void keyPressed(KeyEvent event) { }
public void keyReleased(KeyEvent event) { int keyCode = event.getKeyCode(); if (keyCode == KeyEvent.VK_DELETE) { for (JLabel label : selection) { p.remove(label); p.invalidate(); p.revalidate(); p.repaint(); } selection = new ArrayList<JLabel>(); } }
public void keyTyped(KeyEvent e) { } }
|
|
mercredi 14 novembre 2007 à 14:52:44 |
Re : evenement touche suppr et souri

nasriOM
|
Réponse acceptée !
Merci effectivement c'est pas mal Mais il y a plein d'images partout placé aléatoirement
Moi je veux juste une bibliothèque d'images que je drag and drop! lol
Comment puis je créer un tableau avec mes images à l'intérieur?
cordialement
|
|
mercredi 14 novembre 2007 à 15:09:19 |
Re : evenement touche suppr et souri

the_wwt
|
Bonjour samir ;-), et bien au lieu de créer des images aléatoirement avec la méthode createCopyAleatory(), tu les mets dans une liste: private List<JLabel> images = new ArrayList<JLabel>(); ensuite: public void creerImages(){ //Tu instancie tes images et tu les ajoutes à la liste. Tu n'oublies pas d'ajouter les listeners.
} Cordialement, Pierrick PS: La victoire contre lyon redonne tous les espoirs même les plus fous...
|
|
mercredi 14 novembre 2007 à 17:00:59 |
Re : evenement touche suppr et souri

nasriOM
|
Bonjour Pierrick :-) Ok je vais essayer cela Si je n'y arrive pas je ferai appel à toi. Merci Pierrick ps: La victoire contre l'OL sera le début d'une belle série!!
|
|
Cette discussion est classée dans : java, import, javax, awt, nbcopie
Répondre à ce message
Sujets en rapport avec ce message
interface graphique [ par nasriOM ]
bonjour,Voilà je suis en train de créer une interface graphique type visio, de dessin d'organigramme. Je sais metter mes éléments à gauche et les fai
Probème dans mon code pour port parallèle [ par mageti ]
Bonjour à tous,Je poursuis péniblement ma quête à propos de "comment puis-je commander mon port parallèle ?"J'ai bidouillé un petit code à partir des
Pb de centrage d'un JLabel vertical dans une JTable [ par MehdiD94 ]
Bonjour !!Apres de nombreuses heures vaines, j'appelle a l'aide.J'ai une JTable dont la premiere ligne apres le header contient des JVerticalLabel (cl
Probleme avec JButton et ImageIcon [ par ralebole ]
J'ai un probleme avec JButton et ImageIcon quand je compile et que j'execute avec "Jcreator Le" tous fonctionne normalement j'ai ma fenetre avec mon b
jTable/jCheckBox [ par Dellys ]
Bonjour Je voudrai s'avoir commet afficher un jCheckBox sur un ma jTable dans une colonnes de type booléen et aussi lui attribuer un listner <
Probleme de requete [ par thanatos67 ]
Salut à tous.Je suis en BTS IRIS et pour mon projet je dois créer une base de donnée mysql qui va recevoir des données d'une station météorologique et
PB dans main [ par thanatos67 ]
Salut à toi lecteur. Oui toi! J'ai un petit soucis.J'ai déjà eu un premier soucis résolu grace à l'aide de TWINUTS (encore merci). J'ai une classe dan
Demande d'aide [ par javamen33 ]
Bonjour tt le monde je voudrai creer une aplication qui permet de creer des rectangles . j'ai une fenetre qui contient un bouton et un panel ,lorsque
jbouton et clavier [ par ulysse00 ]
Salut je cherche si je tape sur le bouton entrée de clavier déclanche une actionlistener package aa;import javax.swing.*;<span style="COLOR: #
Livres en rapport
|
Derniers Blogs
[RIA SERVICES] MAITRE - DéTAIL ET DOMAINDATASOURCE[RIA SERVICES] MAITRE - DéTAIL ET DOMAINDATASOURCE par Audrey
A l'occasion d'un projet client, j'ai utilisé RIA Services avec Silverlight 3 (mais cela fonctionne aussi avec la version 4), et je l'ai utilisé pour une interface façon Maitre / Détail. Voici comment j'ai procédé pour arriver à mes fins. Nous allons pren...
Cliquez pour lire la suite de l'article par Audrey CSDL FUNCTIONCSDL FUNCTION par Matthieu MEZIL
Dans mon post précédent , j'ai utilisé une CSDL Function afin de générer une requête SQL avec un DateDiff utilisant la date courante sur la BD à partir d'une requête LINQ. Dans le cadre de ce post , vous avez probablement remarqué que dans le cadre de plu...
Cliquez pour lire la suite de l'article par Matthieu MEZIL LINQ TO ENTITIESLINQ TO ENTITIES par Matthieu MEZIL
Cette semaine je suis à Montréal en tant que speaker sur Entity Framework pour l'évènement confoo . J'en profite pour remercier les organisateurs de cet évènement de m'avoir fait confiance et Access-IT de m'avoir permis d'y participer. En parallèle, j'ai ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010 par neodante
La nouvelle interface d'Office 2010 à amener quelques modifications par rapport à celle de 2007. Certes mineures, ces modifications ont fait disparaître la case à cocher de l'onglet 'Développeur' en première page du panneau du 'bouton Office' (dans Office...
Cliquez pour lire la suite de l'article par neodante [ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1[ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1 par pierre
Si vous avez téléchargé comme moi Microsoft Forums NNTP Bridge V1 avant le 11 mars 2010 (voir [Astuce] Disponibilité de Microsoft Forum NNTP Bridge Version 1.0), un problème de date localisée pour les non anglais était présent. Un patch est disponibl...
Cliquez pour lire la suite de l'article par pierre
Forum
RE : AGENT JADE !RE : AGENT JADE ! par ghezella
Cliquez pour lire la suite par ghezella APPLET + JPANNELAPPLET + JPANNEL par olfa8687
Cliquez pour lire la suite par olfa8687
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|