JAVA.SWT/JFace: SWT基本组件之列表框(List)

《Eclipse SWT/JFACE 核心应用》 清华大学出版社 5.5 列表框(List)

列表框的样式:SWT.SINGLE:只能选中一个选项SWT.MULTI:可同时选择多个选项SWT.H_SCROLL:带有水平滚动条的多行列表框SWT.V_SCROLL:带有垂直滚动条的多行列表框列表框程序示例:

package com.swtjface.Ch2;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.widgets.Button;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.List;import org.eclipse.swt.widgets.Shell;public class ListSample {public static void main(String[] args) {Display display = new Display();Shell shell = new Shell(display);shell.setText("List示例");String[] itemLeft = new String[20]; // 定义保存左侧列表中的数据String[] itemRight = new String[0]; // 定义保存右侧列表中的数据// 初始化左侧字符串数组for (int i = 0; i < 20; i++)itemLeft[i] = "item" + i;// 定义左侧列表,可选择多个并且带有垂直滚动条final List left = new List(shell, SWT.MULTI | SWT.V_SCROLL);left.setBounds(10, 10, 100, 180);// 设置位置和大小left.setItems(itemLeft);// 设置选项数据left.setToolTipText("请选择列表项");// 设置提示// 定义右侧列表,可选择多个并且带有垂直滚动条final List right = new List(shell, SWT.MULTI | SWT.V_SCROLL);right.setBounds(170, 10, 100, 180);right.setItems(itemRight);right.setToolTipText("已选择的列表项");// 创建事件监听类,为内部类SelectionAdapter listener = new SelectionAdapter() {// 按钮单击事件的处理方法public void widgetSelected(SelectionEvent e) {// 取得触发事件的控件对象Button b = (Button) e.widget;if (b.getText().equals(">"))// 如果是">"按钮verifyValue(left.getSelection(), left, right);else if (b.getText().equals(">>"))// 如果是">>"按钮verifyValue(left.getItems(), left, right);else if (b.getText().equals("<"))// 如果是"<"按钮verifyValue(right.getSelection(), right, left);else if (b.getText().equals("<<"))// 如果是"<"按钮verifyValue(right.getItems(), right, left);else if (b.getText().equals("上"))// 如果是"上"按钮{// 获得当前选中选项的索引值int index = right.getSelectionIndex();if (index <= 0)// 如果没有选中,则返回return;// 如果选中了选项值,获得当前选项的值String currentValue = right.getItem(index);// 将选中的选项与上一个选项交换值right.setItem(index, right.getItem(index - 1));right.setItem(index - 1, currentValue);// 设定上一个选项为选中状态right.setSelection(index - 1);} else if (b.getText().equals("下"))// 如果是"下"按钮{// 与上移按钮的逻辑相同int index = right.getSelectionIndex();if (index >= right.getItemCount() - 1)return;String currentValue = right.getItem(index);right.setItem(index, right.getItem(index + 1));right.setItem(index + 1, currentValue);right.setSelection(index + 1);}}// 改变左右列表值public void verifyValue(String[] select, List from, List to) {// 循环所有选中的选项值for (int i = 0; i < select.length; i++) {// 从一个列表中移出该选项值from.remove(select[i]);// 添加到另一个列表中to.add(select[i]);}}};// 定义右移按钮Button bt1 = new Button(shell, SWT.NONE);bt1.setText(">");bt1.setBounds(130, 20, 25, 20);// 并为按钮注册事件,其他的按钮类似bt1.addSelectionListener(listener);Button bt2 = new Button(shell, SWT.NONE);bt2.setText(">>");bt2.setBounds(130, 55, 25, 20);bt2.addSelectionListener(listener);Button bt3 = new Button(shell, SWT.NONE);bt3.setText("<<");bt3.setBounds(130, 90, 25, 20);bt3.addSelectionListener(listener);Button bt4 = new Button(shell, SWT.NONE);bt4.setText("<");bt4.setBounds(130, 125, 25, 20);bt4.addSelectionListener(listener);Button bt5 = new Button(shell, SWT.NONE);bt5.setText("上");bt5.setBounds(300, 70, 25, 20);bt5.addSelectionListener(listener);Button bt6 = new Button(shell, SWT.NONE);bt6.setText("下");bt6.setBounds(300, 105, 25, 20);bt6.addSelectionListener(listener);shell.setSize(350, 250);shell.open();while (!shell.isDisposed()) {if (!display.readAndDispatch())display.sleep();}display.dispose();}}

常用方法:向列表框的末尾添加选项:add()向列表指定位置添加选项:add()和setItem()将字符串数组添加到列表框:setItems()删除指定一个索引的选项:remove(index)删除多个索引的选项:remove(int[])删除指定开始和技术索引值间的选项:remove(int start, int end)删除指定字符串的选项:remove(String)删除列表中所有选项:removeAll()获取指定索引的值:getItem()获得选项总数:getItemCount()获得所有的选项值:getItems()获得第一个选项的索引值:getTopIndex()查找是否存在指定的选项:indexOf(String)查找指定开始索引后是否存在指定的选项:indexOf(String, int start)获得当前所选中的所有选项:getSelection获得当前选中的选项数目:getSelectionCount()获得当前选择选项的索引值:getSelectionIndex()获得当前选择选项的索引值数组:getSelectionIndices()判断某个索引值的选项是否被选中:isSelected设置选中:select()全选:selectAll()设置指定字符串数组中值为选中状态:setSelection(String[] items)显示选中:showSelection()反选:deselect()全部反选:deselectAll()

你的脸是为了呈现上帝赐给人类最贵重的礼物–微笑,一定要成为你工作最大的资产。

JAVA.SWT/JFace: SWT基本组件之列表框(List)

相关文章:

你感兴趣的文章:

标签云: