Java 在swt中按下按钮时如何在列表中搜索字符串
我已经创建了一个tabfolder并创建了一些选项卡,在选项卡中我有一个包含列表的组合。因此,我有一个文本框,因此当在文本框中键入字符串并按下“查找”按钮时,列表应显示为包含字符串,因此如何才能做到这一点 创建textbox和find按钮的代码如下Java 在swt中按下按钮时如何在列表中搜索字符串,java,swt,e4,listeners,Java,Swt,E4,Listeners,我已经创建了一个tabfolder并创建了一些选项卡,在选项卡中我有一个包含列表的组合。因此,我有一个文本框,因此当在文本框中键入字符串并按下“查找”按钮时,列表应显示为包含字符串,因此如何才能做到这一点 创建textbox和find按钮的代码如下 public void postConstruct (Composite parentComposite) { parentComposite.setLayout(new GridLayout(1, true));
public void postConstruct (Composite parentComposite) {
parentComposite.setLayout(new GridLayout(1, true));
Composite topComposite = new Composite(parentComposite, SWT.NONE);
topComposite.setLayout(new GridLayout(2, false));
topComposite.setLayoutData(new GridData(SWT.FILL, GridData.FILL, true, true));
Composite bottomComposite = new Composite(parentComposite, SWT.NONE);
GridData bottomCompositeGD = new GridData(SWT.FILL, SWT.BOTTOM, true, false);
bottomCompositeGD.heightHint = 100;
bottomComposite.setLayout(new GridLayout(2, false));
bottomComposite.setLayoutData(bottomCompositeGD);
Composite topLeftComposite = new Composite(topComposite, SWT.NONE);
topLeftComposite.setLayout(new GridLayout(1, false));
topLeftComposite.setLayoutData(new GridData(SWT.FILL, GridData.FILL, false, true));
Composite topRightComposite = new Composite(topComposite, SWT.NONE);
topRightComposite.setLayout(new GridLayout(1, false));
topRightComposite.setLayoutData(new GridData(SWT.FILL, GridData.FILL, true, true));
Composite findTCComposite = new Composite(topRightComposite, SWT.NONE);
findTCComposite.setLayout(new GridLayout(2, true));
findTCComposite.setLayoutData(new GridData(SWT.FILL, GridData.FILL, true, false));
txtFindTC = new Text(findTCComposite, SWT.BORDER | SWT.WRAP | SWT.SINGLE);
txtFindTC.setLayoutData(new GridData(SWT.FILL, GridData.FILL, true, false));
Button btnFindTC = new Button(findTCComposite, SWT.NONE);
btnFindTC.setLayoutData(new GridData(SWT.BEGINNING, GridData.BEGINNING, false, false));
btnFindTC.setText("Find TC");
TabFolder tabFolder = new TabFolder(topRightComposite, SWT.NONE);
tabFolder.setLayoutData(new GridData(SWT.FILL, GridData.FILL, true, true));
TabItem itemBasicTC = new TabItem(tabFolder, SWT.NONE);
itemBasicTC.setText("Basic TCs");
createListViewBasicTc(tabFolder,itemBasicTC);
}
the the tab is created is below
private void createListViewBasicTc(Composite composite,TabItem itemBasicTC){
final List list = new List(composite, SWT.BORDER);
itemBasicTC.setControl(list);
creatingDragSource(list);
//final java.util.List<String> listSort = new ArrayList<String>();
//for(int i = 1; i <=10 ; i++)
list.add("TestCase
list.add("Test_)");
list.add("something");
}
public void postConstruct(复合父复合){
setLayout(新的GridLayout(1,true));
复合材料顶部复合材料=新复合材料(父复合材料,SWT.NONE);
setLayout(新的GridLayout(2,false));
setLayoutData(新的GridData(SWT.FILL,GridData.FILL,true,true));
复合底部复合=新复合(父复合,SWT.NONE);
GridData bottomCompositeGD=新的GridData(SWT.FILL、SWT.BOTTOM、true、false);
bottomCompositeGD.heightHint=100;
setLayout(新的GridLayout(2,false));
setLayoutData(bottomCompositeGD);
复合材料topLeftComposite=新复合材料(topComposite,SWT.NONE);
setLayout(新的GridLayout(1,false));
setLayoutData(新的GridData(SWT.FILL,GridData.FILL,false,true));
复合材料topRightComposite=新复合材料(topComposite,SWT.NONE);
setLayout(新的GridLayout(1,false));
setLayoutData(新的GridData(SWT.FILL,GridData.FILL,true,true));
复合材料findTCComposite=新复合材料(topRightComposite,SWT.NONE);
setLayout(新的GridLayout(2,true));
setLayoutData(新的GridData(SWT.FILL,GridData.FILL,true,false));
txtFindTC=新文本(findTCComposite,SWT.BORDER | SWT.WRAP | SWT.SINGLE);
txtFindTC.setLayoutData(新的GridData(SWT.FILL,GridData.FILL,true,false));
按钮btnFindTC=新按钮(findTCComposite,SWT.NONE);
btnFindTC.setLayoutData(新的GridData(SWT.beging,GridData.beging,false,false));
btnFindTC.setText(“查找TC”);
TabFolder TabFolder=新的TabFolder(topRightComposite,SWT.NONE);
tabFolder.setLayoutData(新的GridData(SWT.FILL,GridData.FILL,true,true));
TabItem itemBasicTC=新TabItem(tabFolder,SWT.NONE);
itemBasicTC.setText(“基本TCs”);
createListViewBasicTc(选项卡文件夹,itemBasicTC);
}
创建该选项卡的步骤如下所示
私有void createListViewBasicTc(复合复合,TabItem itemBasicTC){
最终列表=新列表(复合、SWT.边框);
ItemBasict.setControl(列表);
创建DragSource(列表);
//final java.util.List listSort=new ArrayList();
//对于(inti=1;i试试这样的方法
button.addListener (SWT.Selection, new Listener()
{
public void handleEvent(Event e) {
//This depends on your search criteria
String search = "A";
Boolean found = false;
for (String str : list) {
if (str.trim().contains(search)) {
return true;
}
}
if (!found) {
return false;
}
}
});