Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

JComboBox avec Swing

2 réponses
Avatar
Goddy
Je vais essayer d'=EAtre clair :

je souhaite apres remplissmenet de la liste d=E9roulante mettre la
selection sur un item voulu de la liste

il y a une methode pour cela : JComboBox.setSelectedIndex(int index)

J'essai comme ca :


int idCourante =3D 3;
String[] liste =3D data.getListe();

for(int i=3D0;i<liste.length;i++){
listeDeroulante.addItem(liste[i]);
}
listeDeroulante.setSelectedIndex(idCourante);


Mais ca ne fonctionne pas ....

Quelqu'un aurai une id=E9e ?

2 réponses

Avatar
Raphael Tagliani
Chez moi ça fonctionne bien, regarde cet exemple, ça t'aidera peut-être:

package jce;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;

public class JCEx extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JComboBox jcb;
private JButton bRevalidate, bChangeSel;
private JCEx() {
super("JCex");

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Container content = this.getContentPane();

String[] items = { "item1", "item2" };
jcb = new JComboBox(items);
jcb.setSelectedIndex(0);

bChangeSel = new JButton("Change selection");
bChangeSel.addActionListener(this);

content.setLayout(new GridLayout(2, 1));

content.add(jcb);
content.add(bChangeSel);

this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
new JCEx();
}
public void actionPerformed(ActionEvent ev) {
if(ev.getSource() == bChangeSel) {
jcb.setSelectedIndex(1);
}
}
}





Je vais essayer d'être clair :

je souhaite apres remplissmenet de la liste déroulante mettre la
selection sur un item voulu de la liste

il y a une methode pour cela : JComboBox.setSelectedIndex(int index)

J'essai comme ca :


int idCourante = 3;
String[] liste = data.getListe();

for(int i=0;i<liste.length;i++){
listeDeroulante.addItem(liste[i]);
}
listeDeroulante.setSelectedIndex(idCourante);


Mais ca ne fonctionne pas ....

Quelqu'un aurai une idée ?



Avatar
Goddy
Ok mon problème venais du fait que lors d'un "additem" l'ecoute est
activée et cela réinitialisé mon idCourant à 0.

je pensais que l'écoute était activé que lors du clique sourie.

Merci pour l'aide.

Raphael Tagliani wrote:
Chez moi ça fonctionne bien, regarde cet exemple, ça t'aidera peut- être:

package jce;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;

public class JCEx extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JComboBox jcb;
private JButton bRevalidate, bChangeSel;
private JCEx() {
super("JCex");

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Container content = this.getContentPane();

String[] items = { "item1", "item2" };
jcb = new JComboBox(items);
jcb.setSelectedIndex(0);

bChangeSel = new JButton("Change selection");
bChangeSel.addActionListener(this);

content.setLayout(new GridLayout(2, 1));

content.add(jcb);
content.add(bChangeSel);

this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
new JCEx();
}
public void actionPerformed(ActionEvent ev) {
if(ev.getSource() == bChangeSel) {
jcb.setSelectedIndex(1);
}
}
}





Je vais essayer d'être clair :

je souhaite apres remplissmenet de la liste déroulante mettre la
selection sur un item voulu de la liste

il y a une methode pour cela : JComboBox.setSelectedIndex(int index)

J'essai comme ca :


int idCourante = 3;
String[] liste = data.getListe();

for(int i=0;i<liste.length;i++){
listeDeroulante.addItem(liste[i]);
}
listeDeroulante.setSelectedIndex(idCourante);


Mais ca ne fonctionne pas ....

Quelqu'un aurai une idée ?