begin process at 2008 08 28 15:55:17
1 233 191 membres
293 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

AJOUTER DES COMPOSANTS EN CLICKANT SUR UNE JFRAME


Information sur la source

Catégorie :Astuces Classé sous : jframe, composants, click, souris Niveau : Débutant Date de création : 03/04/2003 Date de mise à jour : 03/04/2003 11:33:45 Vu : 6 060

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note


Description

C'est juste pour montrer comment intercepter les clicks et ajouter des composants graphiques ou l'on veut avec la souris ;)

Source

  • import java.awt.event.MouseAdapter;
  • import java.awt.event.MouseEvent;
  • import javax.swing.JFrame;
  • import javax.swing.JLabel;
  • public class NoLayout extends JFrame
  • {
  • public NoLayout()
  • {
  • // on donne une taille a la fenetre
  • setSize(800,800);
  • // un titre
  • setTitle("No Layout");
  • // On met le layout a null
  • getContentPane().setLayout(null);
  • // On affiche la fenetre
  • setVisible(true);
  • // On ajoute un MouseListener a notre fenetre
  • getContentPane().addMouseListener(new MyAdapt());
  • }
  • // point d entée du programme
  • public static void main(String[] args)
  • {
  • // Instanciation de notre fenetre
  • NoLayout fen = new NoLayout();
  • }
  • // Classe derivéé de MouseAdapter pour
  • // intercepter les clicks
  • class MyAdapt extends MouseAdapter
  • {
  • // Interception du click
  • public void mouseClicked(MouseEvent e)
  • {
  • // Si double click et bouton gauche
  • if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1)
  • {
  • // nouveau label
  • JLabel lab = new JLabel("<html><font color=\"red\" size=\"4\">coucou</font></html>");
  • // ajout
  • getContentPane().add(lab);
  • // on le place la ou on a clické
  • lab.setBounds(e.getX(),e.getY(),100,40);
  • // on rafraichit
  • getContentPane().repaint();
  • }
  • }
  • }
  • }
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class NoLayout extends JFrame
{
	public NoLayout()
	{
		// on donne une taille a la fenetre
		setSize(800,800);
		
		// un titre
		setTitle("No Layout");
			
		// On met le layout a null
		getContentPane().setLayout(null);
		
		// On affiche la fenetre
		setVisible(true);
		
		// On ajoute un MouseListener a notre fenetre
		getContentPane().addMouseListener(new MyAdapt());	
	}
	
	// point d entée du programme
	public static void main(String[] args)
	{
		// Instanciation de notre fenetre
		NoLayout fen = new NoLayout();
	}
	
	// Classe derivéé de MouseAdapter pour 
	// intercepter les clicks 
	class MyAdapt extends MouseAdapter
	{
		// Interception du click
		public void mouseClicked(MouseEvent e)
		{
			// Si double click et bouton gauche
			if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1)
			{
				// nouveau label
				JLabel lab = new JLabel("<html><font color=\"red\" size=\"4\">coucou</font></html>");
				// ajout
				getContentPane().add(lab);
				// on le place la ou on a clické
				lab.setBounds(e.getX(),e.getY(),100,40);
				// on rafraichit
				getContentPane().repaint();
			}
		}

	}
}

Conclusion

Bon c'est un exemple tout simple mais qui montre certaines possibilités
Duss
  • signaler à un administrateur
    Commentaire de Cronstadt29 le 06/06/2004 15:18:19

    moi g un probleme, je voudrai deplacer un Label dans une frame. Mon code :

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class EssaiDeplacer extends JFrame implements KeyListener{
    private JLabel labelImage = new JLabel();;
    private ImageIcon img = new ImageIcon("images/golem.png");

    public EssaiDeplacer() {
    this.setSize(800,600);
    this.getContentPane().setLayout(null);
    labelImage.setBounds(0,0, 100, 100);
    labelImage.setIcon(img);
    labelImage.addKeyListener(this);
    this.getContentPane().add(labelImage);
    this.show();
    }


    public void keyPressed(KeyEvent ke) {
    int key = ke.getKeyCode();
    switch (key) {
    case KeyEvent.VK_DOWN : labelImage.setBounds(50,500,100,100);
    this.getContentPane().repaint();
    break;
    }

    }

    public void keyReleased(KeyEvent ke) {}
    public void keyTyped(KeyEvent ke) {}

    public static void main(String [] args) {
    EssaiDeplacer ed = new EssaiDeplacer();
    ed.show();

    }


    }

  • signaler à un administrateur
    Commentaire de Cronstadt29 le 06/06/2004 15:19:04

    moi g un probleme, je voudrai deplacer un Label dans une frame. Mon code :

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class EssaiDeplacer extends JFrame implements KeyListener{
    private JLabel labelImage = new JLabel();;
    private ImageIcon img = new ImageIcon("images/golem.png");

    public EssaiDeplacer() {
    this.setSize(800,600);
    this.getContentPane().setLayout(null);
    labelImage.setBounds(0,0, 100, 100);
    labelImage.setIcon(img);
    labelImage.addKeyListener(this);
    this.getContentPane().add(labelImage);
    this.show();
    }


    public void keyPressed(KeyEvent ke) {
    int key = ke.getKeyCode();
    switch (key) {
    case KeyEvent.VK_DOWN : labelImage.setBounds(50,500,100,100);
    this.getContentPane().repaint();
    break;
    }

    }

    public void keyReleased(KeyEvent ke) {}
    public void keyTyped(KeyEvent ke) {}

    public static void main(String [] args) {
    EssaiDeplacer ed = new EssaiDeplacer();
    ed.show();

    }


    }

  • signaler à un administrateur
    Commentaire de Duss le 07/06/2004 09:23:19

    au lieu de
    labelImage.addKeyListener(this);
    met juste
    addKeyListener(this);
    ca marchera,
    Duss

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS