begin process at 2012 02 12 15:44:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Multimédia

 > 

Java2D

 > 

evenement touche suppr et souri


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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 coloriage d'une ligne d'un jtable automatiquement sans la sélectionner [ par noussaannousa ] j'ai essayé ces deux classes mais encore ça va pas marché :( import java.awt.Color; import java.awt.Component; import javax.swing.JTable; import ja spécification du login et mot de passe [ par tortafol ] voila mon code mais j'ai un problème le login et le mot de passe ne fonctionne pas c-a-d que n'importe qui peut accéder a mon application; il n'y a pa login et mot de passe [ par 208893 ] bonjours j'ai un problème de l'exécution de login et mot de passe. le problème est n'importe qui peut accéder à mon application l'application ne véri espace login et mot de passe [ par 208893 ] j'ai un erreur dans mon code je ne trouve pas une solution voila mon code ********************************************************************** //Log problème avec JProgressBar [ par ulysse00 ] salut mon JProgressBar ne fonctionne pas voila le code si je tape sur le bouton rien ne passe import javax.swing.SwingUtilities; import java.awt.Bo authentification d'une application java [ par 208893 ] bonjour mes amis; j'ai modifier ma dernier application qui concerne le login et le mot de passe mais toujours le même problème s'affiche voila mon no sécuirser [ par 208893 ] bonjours mes amis; j'ai un problème de l'exécution de login et mot de passe. le problème est n'importe qui peut accéder à mon application l'applica popup menu JAVA [ par darenesy ] Bonjour à tous, je suis actuellement en train de finir un projet codé en java pour mes cours. pour résumer la situation, j'ai une table qui contient 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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,415 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales