Afficher une image e cliquent sur un jlabel
Résolu
mariya2016
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
mariya2016 Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
mariya2016 Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai crée une interface graphique avec swing, j'ai affiché une image dans un Jlabel. je veux que lorsque je clique sur l'image ça m'affichera une autre image, et en cliquant une deuxième fois je reviens à l'image précédente.
voici un bout de code de ce que j'ai fait (ça m'affiche l'image en cliquant un fois, mais pour revenir à l'image précédente ça marche pas)
Merci à tous et bon courage.
voici un bout de code de ce que j'ai fait (ça m'affiche l'image en cliquant un fois, mais pour revenir à l'image précédente ça marche pas)
//l'[/download/telecharger-34085101-alarme alarme] est activé final JLabel l3=new JLabel(im3_A); l3.setSize(50,50); l3.setLocation(350, 30); l.add(l3); // class Traitement implements MouseListener { public void mouseClicked(MouseEvent e){ boolean a=true; ImageIcon im3=new ImageIcon("images/alarme.jpg"); JLabel l31 =new JLabel(im3); if (a ==true){l3.setIcon(im3);a=false;} else {l3.setIcon(im3_A);a=true;} try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con=DriverManager.getConnection("jdbc:oracle:thin:system/orcl1@localhost:1521:XE","admin","admin"); Statement st = con.createStatement(); String sql="update equipement set etat='désactivé' where nom='alarmeJ' "; ResultSet rs=st.executeQuery(sql); rs.next(); } catch (SQLException | ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } } //l'appel Traitement tr=new Traitement(); l3.addMouseListener(tr);
Merci à tous et bon courage.
A voir également:
- Afficher une image e cliquent sur un jlabel
- É majuscule - Guide
- Légender une image - Guide
- Image iso - Guide
- Comment rechercher une image sur google - Guide
- Mettre une image en filigrane sur word - Guide
6 réponses
salut,
Je crois que tu dois déclarer le variable "boolean a" Globalement, parce qu’il est toujours "true" a chaque clique de la souris
Le programme n’entre jamais dans la condition : (else{l3.setIcon(im3_A);a=true;} )
Je crois que tu dois déclarer le variable "boolean a" Globalement, parce qu’il est toujours "true" a chaque clique de la souris
Le programme n’entre jamais dans la condition : (else{l3.setIcon(im3_A);a=true;} )
Ok
J’ai des questions à propos de ton code :
1. Dans ton code je ne vois pas la création du variable im3_A.
2. Tu à créer JLabel l31 sans l’utilisé pour quoi ?
Pour que je peux vous aider il me faut tout le code de la Class et aussi les Erreurs.
mais tu peux essayer ce code :
//Placer ceci au premier ligne de ta Classe (variable globales):
//---------------------------------------------------------
boolean a=true;
JLabel l1=new JLabel();
l1.setSize(50,50);
l1.setLocation(350, 30);
l.add(l1);"ici je suppose que le variable 'l' est la JForme.??"
ImageIcon im1=new ImageIcon("images/alarme1.jpg"); //alarme1.jpg est la premiere image.
ImageIcon im2=new ImageIcon("images/alarme2.jpg"); //alarme1.jpg est la deuxième image
//---------------------------------------------------------------
class Traitement implements MouseListener
{
public void mouseClicked(MouseEvent e){
if (a ==true){l1.setIcon(im1);a=false;}
else {l1.setIcon(im2);a=true;}
.
.
.
J’ai des questions à propos de ton code :
1. Dans ton code je ne vois pas la création du variable im3_A.
2. Tu à créer JLabel l31 sans l’utilisé pour quoi ?
Pour que je peux vous aider il me faut tout le code de la Class et aussi les Erreurs.
mais tu peux essayer ce code :
//Placer ceci au premier ligne de ta Classe (variable globales):
//---------------------------------------------------------
boolean a=true;
JLabel l1=new JLabel();
l1.setSize(50,50);
l1.setLocation(350, 30);
l.add(l1);"ici je suppose que le variable 'l' est la JForme.??"
ImageIcon im1=new ImageIcon("images/alarme1.jpg"); //alarme1.jpg est la premiere image.
ImageIcon im2=new ImageIcon("images/alarme2.jpg"); //alarme1.jpg est la deuxième image
//---------------------------------------------------------------
class Traitement implements MouseListener
{
public void mouseClicked(MouseEvent e){
if (a ==true){l1.setIcon(im1);a=false;}
else {l1.setIcon(im2);a=true;}
.
.
.
le code précédent est une partie d'une grande classe (je voulais pas le mettre c'est trop),
j'ai crée une nouvelle classe pour faciliter les testes
j'ai essayé de déclarer "boolean a=true;" globalement mais ça marche pas.
j'ai crée une nouvelle classe pour faciliter les testes
import java.awt.Container; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class fen { public static void main(String[] args) { JFrame f=new JFrame(); f.setVisible(true); f.setTitle("Domo"); f.setLocation(10, 40); f.setSize(1100,700); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c=f.getContentPane(); ImageIcon im3=new ImageIcon("images/[/download/telecharger-34085101-alarme alarme].jpg"); ImageIcon im3_A=new ImageIcon("images/alarme A.jpg"); final JLabel l=new JLabel(im3); l.setSize(60,60); l.setLocation(350, 30); c.add(l); //--------------------------------------------------------------------------------- class traitement implements MouseListener{ @Override public void mouseClicked(MouseEvent arg0) { // boolean a=true; ImageIcon im3=new ImageIcon("images/alarme.jpg"); ImageIcon im3_A=new ImageIcon("images/alarme A.jpg"); if (a ==true){l.setIcon(im3_A);a=false;} else {l.setIcon(im3);a=true;} } @Override public void mouseEntered(MouseEvent arg0) { // [/download/telecharger-34065125-todo TODO] Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } } traitement tr=new traitement(); l.addMouseListener(tr); } }
j'ai essayé de déclarer "boolean a=true;" globalement mais ça marche pas.
salut,
c'est bon tu a régler le Pb d’affichage .
pour le Pb de l'erreur sql c'est causé par le type de données que tu reçoit
L’ensemble de données récupérer par ResultSet est un ensemble d’enregistrements est souvent utilisé pour les requêtes de sélection "select" tandis tu utilise la requête de mise a jour "update" donc tu dois utilisé la fonction « executeUpdate(sql) » comme suite :
int up = st.executeUpdate(sql) // up est le nombre de lignes mis a jour.
bonne chance
c'est bon tu a régler le Pb d’affichage .
pour le Pb de l'erreur sql c'est causé par le type de données que tu reçoit
L’ensemble de données récupérer par ResultSet est un ensemble d’enregistrements est souvent utilisé pour les requêtes de sélection "select" tandis tu utilise la requête de mise a jour "update" donc tu dois utilisé la fonction « executeUpdate(sql) » comme suite :
int up = st.executeUpdate(sql) // up est le nombre de lignes mis a jour.
bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok,
Premièrement l’appel du driver Oracle et la création de la connexion a la base de donnée a et aussi la création du Statement a chaque clique de la souris est une action non souhaitable, c’est mieux de faire ça dans une autre Class puis les appelles dans ton Class Main a l’aide du constructeur de la Class ou d’un bouton « Connect » par exemple (Notion d’Orienté Objet), ou faire ça simplement d’une manière globale (les crées dans le constructeur de ta Class Main) .
Pour l’erreur « Ensemble de résultats épuisé » c’est comme que je te dis : le retour d’une requête est non supporter par le type du variable utilisé. Donc pour que je puisse t’aider il me faut voir tout le code de ta Class qui contient des requêtes qui interroge la base de donnée.
Premièrement l’appel du driver Oracle et la création de la connexion a la base de donnée a et aussi la création du Statement a chaque clique de la souris est une action non souhaitable, c’est mieux de faire ça dans une autre Class puis les appelles dans ton Class Main a l’aide du constructeur de la Class ou d’un bouton « Connect » par exemple (Notion d’Orienté Objet), ou faire ça simplement d’une manière globale (les crées dans le constructeur de ta Class Main) .
Pour l’erreur « Ensemble de résultats épuisé » c’est comme que je te dis : le retour d’une requête est non supporter par le type du variable utilisé. Donc pour que je puisse t’aider il me faut voir tout le code de ta Class qui contient des requêtes qui interroge la base de donnée.
j'ai essayé de déclarer a globalement mais ça marche pas, ça m'affiche une erreur et lorsque je l'ai déclaré final ça marche pas encore, comme vous l'avez dit le programme n’entre jamais dans la condition : (else{l3.setIcon(im3_A);a=true;} )