java列表框_Java界面 SWT基本组件——列表框(List)

本文通过一个实例介绍了如何在Java SWT中使用List组件进行数据的转移、上移、下移等操作。程序实现了左右两个列表框间的数据交互,包括单个或全部选项的转移,并提供了上移和下移功能。通过SelectionAdapter监听按钮事件,实现对List组件的选择状态的改变。此外,文章还列举了List类的部分常用方法,如添加、删除选项,以及获取和设置选中状态等。
摘要由CSDN通过智能技术生成

列表框(List)的基本样式与基础应用

本次实验要求设计一个小程序来说明列表框的一些常用方法。

程序的主要功能:

1. 单击 “>” 按钮,将左侧选中的选项转移到右侧;

2. 单击 “

3. 单击 “>>” 按钮,将左侧所有选项都转移到右侧;

4. 单击 “<

5. 单击 "Up" 按钮,将所选的选项(右侧)向上移动一个位置;

6. 单击 “Down” 按钮,将所选的选项(右侧)向下移动一个位置;

在代码中,包含:

1. 创建事件监听类,为内部类;

2. 选项上移与下移过程中考虑边界;

代码(无static void main(String[] args))如下:(《EclipseSWT/JFace 核心应用》清华大学出版社)

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.List;

import org.eclipse.swt.widgets.Shell;

public class ListSample {

private Shell shell;

public ListSample(Shell sShell) {

shell = new Shell(sShell, SWT.CLOSE);

shell.setSize(350, 250);

shell.setText("ListSample");

String itemLeft[] = new String[20];// 定义保存左侧列表框中的数据

String itemright[] = new String[0];// 定义保存右侧列表框中的数据

for(int i = 0; i < itemLeft.length; 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("Choosed List");// 设置提示

final List right = new List(shell, SWT.MULTI|SWT.V_SCROLL);

// 定义右侧列表框,可选择多个且带有滚动条

right.setBounds(170, 10, 100, 180);

right.setItems(itemright);

right.setToolTipText("Choosed List");

// 创建事件监听类,为内部类

SelectionAdapter listener = new SelectionAdapter() {

// 按钮单击事件处理的方法

public void widgetSelected(SelectionEvent e) {

// 取得触发事件的空间对象(按钮)

Button bt = (Button)e.widget;

if(bt.getText().equals(">"))// 如果是“>”按钮

verifyValue(left.getSelection(), left, right);

else if(bt.getText().equals(">>"))// 如果是“>>”按钮

verifyValue(left.getItems(), left, right);

else if(bt.getText().equals("

verifyValue(right.getSelection(), right, left);

else if(bt.getText().equals("<

verifyValue(right.getItems(), right, left);

else if(bt.getText().equals("Up"))// 如果是“Up”按钮

{

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(bt.getText().equals("Down"))// 如果是“Down”按钮

{

// 与“Up”按钮逻辑相同

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);

}

}

};

// 定义按钮

// 定义(单)右移按钮

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("Up");

bt5.setBounds(285, 70, 40, 20);

bt5.addSelectionListener(listener);

// 定义下移按钮

Button bt6 = new Button(shell, SWT.NONE);

bt6.setText("Down");

bt6.setBounds(285, 105, 40, 20);

bt6.addSelectionListener(listener);

shell.open();

}

private void verifyValue(String[] selected, List from, List to) {

for(int i = 0; i < selected.length; i++)

{

from.remove(selected[i]);// 从一个列表中移除该选项值

to.add(selected[i]);// 添加到另一列表中

}

}

}

0818b9ca8b590ca3270a3433284dd417.png

List 类所使用的样式常量

样式常量

描述

SWT.SINGLE

只能选中一个选项,为默认样式

SWT.MULTI

可同时选择多个选项的列表框,按住 Ctrl 键即可多选

SWT.H_SCROLL

带有水平滚动条的多行列表框

SWT.V_SCROLL

带有垂直滚动条的多行列表框

方法·向列表框中添加选项

方法

含义

add(String string)

向列表框的末尾添加选项

add(String string, int index); setItem(int index, String string)

向列表指定位置添加选项

setItems(String[] items)

将字符串数组添加到列表框

方法·删除列表框中的选项

方法

含义

remove(int index)

删除指定一个索引出的选项

remove(int[] indices)

删除多个索引的选项

remove(int start, int end)

删除指定开始和结束索引值间的选项

remove(String string)

删除指定字符串的选型

removeAll()

删除列表中所有的选项

方法·获得列表框的状态

方法

含义

String getItem(int index)

获得指定索引的选项值

getItemCount()

获得选项的总数

String[] getItems()

获得所有的选项值

getTopIndex()

获得第一个选项的索引值

indexOf(String string)

查找是否存在指定的选项,如果存在,测返回所在的索引值

indexOf(String string, int start)

查找指定开始索引后是否存在指定的选项,如存在,则放回索引值

方法·对列表框中已选中的选项操作方法

方法

含义

String[] getSelection()

获取当前所选中的所有选项

getSelectionCount()

获得当前选中的选项数目

getSelectionIndex()

获得当前选中选项的索引值

int[] getSelectionIndices

获得当前选中选项的索引值数组

isSelected(int index)

判断某个索引值的选项是否已被选中:true, false

select(int index); setSelection(int index)

设置指定索引值的选项为选中状态

select(int[] indices); setSelection(int[] indices)

设置指定索引值数组的选项为选中状态

select(int start, int end); setSelection(int start, int end)

设置开始索引到结束索引的选项为选中状态

selectAll()

全选

setSelection(String[] items)

设置指定字符串数组中值为选中状态

showSelection()

显示选中的方法

deselect(int index)

反选指定索引的选项

deselect(int[] indices)

反选指定索引数组的选项

deselect(int start, int end)

反选开始索引到结束索引的选项

deselectAll()

全部反选

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值