Le Tutoriel de Java SWT Combo
1. SWT Combo
Combo est un composant de l'interface populaire. Il permet aux utilisateurs de sélectionner l'une des options. Lorsque les utilisateurs cliquent sur Combo, une liste d'options apparaîtra pour les utilisateurs à sélectionner.
Remarque : Tous les éléments de Combo sont String, si vous voulez que ces élémentss sont le type de Object, vous pouvez utiliser JFace ComboViewer, qui a une classe emballant un Combo.Voir plus JFace ComboViewer:
- JFace ComboViewer
Styles:
Style | Description |
SWT.DROP_DOWN | Crée un Combo dont la liste déroulante ("drops down"). |
SWT.READ_ONLY | Combo comprend des éléments disponibles, ne permet pas de taper l'entrée. Seules des Combo a le style étant SWT.DROP_DOWN. |
SWT.SIMPLE | Afficher le boîte de saisie (Input Box) et la liste (List) ensemble. |
Vous pouvez créer Combo d'une classe de String:
// Create a dropdown Combo
Combo combo = new Combo(shell, SWT.DROP_DOWN);
String[] items = new String[] { "English", "Vietnamese" };
combo.setItems(items);
Vous pouvez également ajouter d'autres éléments au Combo disponible:
// Adds the item to the begin of the receiver's list.
combo.add("Indian",0);
// Adds the item to the end of the receiver's list.
combo.add("Indian");
2. Exemple de Combo
L'exemple ci-dessous crée un Combo déroulant, peut saisir des valeurs supplémentaires.
ComboDemo.java
package org.o7planning.swt.combo;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class ComboDemo {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
RowLayout rowLayout = new RowLayout();
rowLayout.marginLeft = 10;
rowLayout.marginTop = 10;
shell.setLayout(rowLayout);
Label label = new Label(shell,SWT.NONE );
label.setText("Select language:");
// Create a dropdown Combo
Combo combo = new Combo(shell, SWT.DROP_DOWN);
String[] items = new String[] { "English", "Vietnamese" };
combo.setItems(items);
shell.setText("SWT Combo (o7planning.org)");
shell.setSize(400, 200);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
Readonly Combo:
// Create a dropdown Combo & Read only
Combo combo = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);
String[] items = new String[] { "English", "Vietnamese" };
combo.setItems(items)
Simple Combo
// Create a simple Combo
Combo combo = new Combo(shell, SWT.SIMPLE | SWT.READ_ONLY);
String[] items = new String[] { "English", "Vietnamese" };
combo.setItems(items);
3. Gestion des éléments avec Combo
Par exemple, lorsqu'un Combo affiche une liste de langues, des utilisateurs peuvent saisir plus de nouvelles langues, puis appuyez sur Enter pour l'ajouter à la liste.
ComboEventDemo.java
package org.o7planning.swt.combo;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class ComboEventDemo {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
RowLayout rowLayout = new RowLayout();
rowLayout.marginLeft = 10;
rowLayout.marginTop = 10;
shell.setLayout(rowLayout);
// Label
Label label = new Label(shell, SWT.NONE);
label.setText("Select language:");
// Create a dropdown Combo
Combo combo = new Combo(shell, SWT.DROP_DOWN);
String[] items = new String[] { "English", "Vietnamese" };
combo.setItems(items);
Label labelMessage = new Label(shell, SWT.NONE);
// User select a item in the Combo.
combo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
int idx = combo.getSelectionIndex();
String language = combo.getItem(idx);
labelMessage.setText("Select: " + idx + " - " + language);
labelMessage.pack();
}
});
// User enter new 'language'
// and press Enter to add new 'language' to the list.
combo.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
// User pressed Enter.
if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
String text = combo.getText();
if (text == null || text.length() == 0) {
return;
}
String[] items = combo.getItems();
for (String item : items) {
if (item.equals(text)) {
return;
}
}
combo.add(text);
}
}
});
shell.setText("SWT Combo (o7planning.org)");
shell.setSize(400, 200);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
Tutoriels de programmation Java SWT
- Le Tutoriel de Java SWT FillLayout
- Le Tutoriel de Java SWT RowLayout
- Le Tutorial de Java SWT SashForm
- Le Tutoriel de Java SWT Label
- Le Tutoriel de Java SWT Button
- Le Tutoriel de Java SWT Toggle Button
- Le Tutoriel de Java SWT Radio Button
- Le Tutoriel de Java SWT Text
- Le Tutoriel de Java SWT Password Field
- Le Tutoriel de Java SWT Link
- Programmation de l'application Java Desktop à l'aide de SWT
- Le Tutoriel de Java SWT Combo
- Le Tutoriel de Java SWT Spinner
- Le Tutoriel de Java SWT Slider
- Le Tutoriel de Java SWT Scale
- Le Tutoriel de Java SWT ProgressBar
- Le Tutoriel de Java SWT TabFolder et CTabFolder
- Le Tutoriel de Java SWT List
Show More