Mục lục
- 1- SWT Combo
- 2- Ví dụ Combo
- 3- Xử lý sự kiện với Combo
Hướng dẫn sử dụng Java SWT Combo
Xem thêm các chuyên mục:
- 1- SWT Combo
- 2- Ví dụ Combo
- 3- Xử lý sự kiện với Combo
-
1- SWT Combo
-
Combo là một thành phần giao diện thông dụng. Nó cho phép người dùng chọn một trong nhiều lựa chọn. Khi người dùng click vào Combo, một danh sách các lựa chọn sẽ sổ xuống cho người dùng lựa chọn.
-
Chú ý: Tất cả các phần tử trong Combo phải là đối tượng kiểu String, nếu bạn muốn các phần tử là kiểu Object hãy sử dụng JFace ComboViewer, nó là một class bao lấy một Combo.Xem thêm JFace ComboViewer:
- TODO Link!
-
Styles:
-
Style Mô tả SWT.DROP_DOWN Tạo một Combo với danh sách sổ xuống ("drops down"). SWT.READ_ONLY Combo chỉ bao gồm các phần tử có sẵn, không cho phép nhập thêm. Chỉ dùng cho các Combo có style là SWT.DROP_DOWN. SWT.SIMPLE Hiển thị hộp đầu vào (Input Box) và một danh sách (List). -
-
Bạn có thể tạo Combo từ một danh sách các String:
-
// Tạo một Combo sổ xuống. Combo combo = new Combo(shell, SWT.DROP_DOWN); String[] items = new String[] { "English", "Vietnamese" }; combo.setItems(items);
-
Bạn cũng có thể thêm các phần tử vào Combo có sẵn:
-
// Thêm một phần tử (item) vào vị trí đầu tiên. combo.add("Indian",0); // Thêm một phần tử vào cuối danh sách của combo. combo.add("Indian");
-
2- Ví dụ Combo
-
Ví dụ dưới đây tạo một Combo sổ xuống, có thể nhập thêm giá trị.
-
-
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:"); // Tạo một Combo sổ xuống. 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:
-
// Tạo một Combo sổ xuống & Read only Combo combo = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY); String[] items = new String[] { "English", "Vietnamese" }; combo.setItems(items)
-
-
Simple Combo
-
// Tạo một đơn giản Combo. Combo combo = new Combo(shell, SWT.SIMPLE | SWT.READ_ONLY); String[] items = new String[] { "English", "Vietnamese" }; combo.setItems(items);
-
-
3- Xử lý sự kiện với Combo
-
Ví dụ dưới đây, một Combo hiển thị danh sách các ngôn ngữ, người dùng có thể nhập thêm ngôn ngữ mới và nhấn Enter để thêm ngôn ngữ vào danh sách.
-
-
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 // Tạo một Combo sổ xuống. Combo combo = new Combo(shell, SWT.DROP_DOWN); String[] items = new String[] { "English", "Vietnamese" }; combo.setItems(items); Label labelMessage = new Label(shell, SWT.NONE); // Người dùng lựa chọn một Item trên 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(); } }); // Người dùng nhập 'ngôn ngữ' mới // và nhấn Enter để thêm 'ngôn ngữ' vào danh sách. combo.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { // Người dùng nhấn nút 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(); } }