La JComboBox
●boîte déroulante qui combine une zone de texte et une liste
●utilise un ComboBoxModel
●on peut sélectionner un élément
●on est prévenu de la sélection par un ActionListener:
combo1.addActionListener(newActionListener() {
@Override
public voidactionPerformed(ActionEvent e) {
String s=(String)combo1.getSelectedItem();
if(s!=null) {
noteLabel.setText(s);
}
}
});
Un ComboBoxModel
● pour ajouter un élément, sans doublon, et à la bonne place, on va écrire notre propre modèle:
/* We extend AbstractListModel in order to have the fire… methods */
public class MyComboModel extends AbstractListModel implements MutableComboBoxModel {
private String selectedItem;
private ArrayList<String> elements;
boolean ascending=true;
public MyComboModel(String… items) {
elements=new ArrayList<String>();
for (String s:items) {
addElement(s);
}
}
Le JSlider
● curseur à déplacer sur une barre, défini par un minimum, un maximum et une valeur courante, tous entiers
● utilise un BoundedRangeModel
● utilise un ChangeListener pour prévenir qu’une de ces valeurs a changé
● peut afficher ou non des encoches, grandes et petites, ainsi que des labels, personnalisés ou non
Le JSlider
●exemple de labels personnalisés:
private staticJLabel makeLabel(String string) {
JLabel l=newJLabel(string);
l.setOpaque(true);
l.setForeground(Color.RED);
l.setBackground(Color.GREEN);
returnl;
}
finalHashtable<Integer,JComponent> customLabels=newHashtable<Integer,JComponent>();
customLabels.put(0,makeLabel(« none »));
customLabels.put(80,makeLabel(« a bit »));
customLabels.put(190,makeLabel(« quite much »));
customLabels.put(255,makeLabel(« maximum »));
on décide des valeurs qui auront
un label
Le JSpinner
● composant destiné à éditer une valeur, soit au clavier, soit avec 2 petites flèches
● comportement similaire au JSlider (minimum, maximum, etc)
Saisies filtrées
● les SpinnerModel refusent les valeurs qui ne correspondent pas à ce qu’ils attendent, comme par exemple un mot au lieu d’un nombre
● ce type de filtrage peut également être mis en œuvre grâce au JFormattedTextField
● exemple: filtrage d’adresses IP
Les arbres
● les acteurs:
– JTree:la vue graphique
– TreeModel:lemodèle de données
– TreeNode:lesnoeuds
● 2 façons de gérer les arbres:
– le modèle qui sait tout et fait tout
– les nœuds qui se connaissent entre eux
Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Interface Graphique en Java 1.6 Combos, sliders, spinners et arbres (635 KO) (Cours PDF)
![]()