Problème d'étiquetttage dynamique de JLabel selon JCombobox

Résolu
Goahould_nt Messages postés 21 Date d'inscription vendredi 21 avril 2023 Statut Membre Dernière intervention 27 janvier 2024 - Modifié le 23 avril 2023 à 12:56
Goahould_nt Messages postés 21 Date d'inscription vendredi 21 avril 2023 Statut Membre Dernière intervention 27 janvier 2024 - 22 avril 2023 à 23:53

Voila, j'aimerais modifier des JLabel en fonction du choix d'un menu déroulant JCombobox. J'ai essayé de redéfinir JFrame.paint(Graphics g), mais je n'ai pas réussis, parail pour JFrame.update(Graphics g). Le code est le suiivant:

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.FlowLayout;

import java.util.*;

public class SGUI extends JFrame implements ActionListener, ItemListener {

private JComboBox nomProduit;

private JLabel etiquette, description, prix;

private JPanel haut,centre, bas;

private JButton vendre;

private ArrayList<String> lNomProduit, lDescription, lPrix;

private String requete;

private int noItem=0 ;

public SGUI(String titre) {

requete = "SELECT nomProd FROM xprods";

lNomProduit = SQLService.execGetList(requete);

requete = "SELECT description FROM xprods";

lDescription = SQLService.execGetList(requete);

requete = "SELECT prix FROM xprods";

lPrix = SQLService.execGetList(requete);

affiche(lPrix);

haut = new JPanel();

centre = new JPanel();

bas = new JPanel();

etiquette = new JLabel("Choix des articles à vendre");

haut.setLayout(new FlowLayout());

haut.add(etiquette,FlowLayout.LEFT);

nomProduit = new JComboBox(lNomProduit.toArray());

nomProduit.addItemListener(this);

centre.setLayout(new FlowLayout());

description = this.getADescription();

prix = this.getAPrix();

centre.add(nomProduit, FlowLayout.LEFT);

centre.add(description);

centre.add(prix);

/*haut.updateUI();

centre.updateUI();*/

Container contenu = this.getContentPane();

this.setLayout(new BorderLayout());

contenu.add(haut, BorderLayout.NORTH);

contenu.add(centre,BorderLayout.CENTER);

contenu.add(bas, BorderLayout.SOUTH);

this.setTitle(titre);

this.setBounds(10, 20, 600, 400);

}

public void affiche(ArrayList<String> al) {

System.out.println("liste "+ al.toString());

}

public void actionPerformed(ActionEvent ev) {

System.out.println("Action");

}

public void itemStateChanged(ItemEvent ev) {

Object itemChoisi = nomProduit.getSelectedItem();

noItem = nomProduit.getSelectedIndex();

System.out.println("noItem "+ noItem);

System.out.println("Item choisi "+ (String)itemChoisi);

//this.update(getGraphics());

}

/*public void update(Graphics g) {

description = this.getADescription();

description.updateUI();

prix = this.getAPrix();

}*/

private JLabel getADescription() {

String label = lDescription.get(noItem).toString();

return new JLabel(label);

}

private JLabel getAPrix() {

String label = lPrix.get(noItem).toString();

return new JLabel(label);

}

}

Y-a-il quelqu'un qui sait comment modifier dynamiquement une JLabel en fonctoin du choix d'un menu déroulant JComboBox ?

1 réponse

Goahould_nt Messages postés 21 Date d'inscription vendredi 21 avril 2023 Statut Membre Dernière intervention 27 janvier 2024
Modifié le 23 avril 2023 à 12:57

Avec la méthode

JLabel.setText(String nvoTxt) 

ça fonctionne. Merci quand même.

0
Rejoignez-nous