Ajouter des composants en clickant sur une jframe

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 183 fois - Téléchargée 27 fois

Contenu du snippet

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

Source / Exemple :


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

A voir également

Ajouter un commentaire

Commentaires

Cronstadt29
Messages postés
3
Date d'inscription
dimanche 6 juin 2004
Statut
Membre
Dernière intervention
6 juin 2004
-
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();

}


}
Cronstadt29
Messages postés
3
Date d'inscription
dimanche 6 juin 2004
Statut
Membre
Dernière intervention
6 juin 2004
-
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();

}


}
cs_Duss
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
9 -
au lieu de
labelImage.addKeyListener(this);
met juste
addKeyListener(this);
ca marchera,
Duss

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.