Goahould_nt
Messages postés17Date d'inscriptionvendredi 21 avril 2023StatutMembreDernière intervention25 mai 2023
-
Modifié le 23 avril 2023 à 12:56
Goahould_nt
Messages postés17Date d'inscriptionvendredi 21 avril 2023StatutMembreDernière intervention25 mai 2023
-
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 ?
A voir également:
Problème d'étiquetttage dynamique de JLabel selon JCombobox