Java 如何使用SWT列表? private ArrayList printersList=null; 专用ArrayList打印机=null; ... void方法(){ ... printers=(ArrayList)listOp.getPrinters(); PrinterList.setListData(printers.toArray(新的PrinterProfile[0]); }
Java 如何使用SWT列表? private ArrayList printersList=null; 专用ArrayList打印机=null; ... void方法(){ ... printers=(ArrayList)listOp.getPrinters(); PrinterList.setListData(printers.toArray(新的PrinterProfile[0]); },java,arraylist,swt,Java,Arraylist,Swt,setListData仅适用于JList,但我正在使用SWT和ArrayList我想您要搜索的是SWT。您可以这样使用它: private ArrayList<PrinterProfile> printersList = null; private ArrayList<PrinterProfile> printers = null; ... void Method() { ... printers = (ArrayList<Printer
setListData
仅适用于JList
,但我正在使用SWT和ArrayList
我想您要搜索的是SWT。您可以这样使用它:
private ArrayList<PrinterProfile> printersList = null;
private ArrayList<PrinterProfile> printers = null;
...
void Method() {
...
printers = (ArrayList<PrinterProfile>) listOp.getPrinters();
printersList.setListData(printers.toArray(new PrinterProfile[0]));
}
import java.util.ArrayList;
导入java.util.array;
导入org.eclipse.swt.swt;
导入org.eclipse.swt.layout.GridLayout;
导入org.eclipse.swt.widgets.Display;
导入org.eclipse.swt.widgets.Event;
导入org.eclipse.swt.widgets.List;
导入org.eclipse.swt.widgets.Listener;
导入org.eclipse.swt.widgets.Shell;
公共类小型示例{
公共静态void main(字符串[]args){
Display=Display.getDefault();
最终外壳=新外壳(显示);
shell.setLayout(新的GridLayout(1,false));
//用其内容填充ArrayList
ArrayList打印机=新建ArrayList();
打印机。添加(“爱普生”);
打印机。添加(“佳能”);
打印机。添加(“HP”);
最终列表打印列表=新列表(shell,SWT.MULTI | SWT.BORDER);
//将ArrayList填入SWT列表
用于(字符串打印:打印机)
printerList.add(打印);
//打印选择
addListener(SWT.Selection,newlistener()){
@凌驾
公共无效handleEvent(事件arg0){
如果(printerList.getSelectionCount()>0)
System.out.println(Arrays.toString(printerList.getSelection());
}
});
shell.pack();
shell.open();
而(!shell.isDisposed()){
如果(!display.readAndDispatch())
display.sleep();
}
}
}
因为您在前面的问题中已经使用了JFace查看器,所以我建议您在这里也使用一个
注意:
既然您已经熟悉了TableViewer
,为什么不使用只包含一列且setheadervible(false)
和SWT.MULTI
作为样式的TableViewer呢?基本上也会有同样的效果
import java.util.ArrayList;
import java.util.Arrays;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class MiniExample {
public static void main(String[] args) {
Display display = Display.getDefault();
final Shell shell = new Shell(display);
shell.setLayout(new GridLayout(1, false));
// Fill your ArrayList with its content
ArrayList<String> printer = new ArrayList<String>();
printer.add("Epson");
printer.add("Canon");
printer.add("HP");
final List printerList = new List(shell, SWT.MULTI | SWT.BORDER);
// Fill the ArrayList into the SWT List
for(String print : printer)
printerList.add(print);
// Print selection
printerList.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event arg0) {
if(printerList.getSelectionCount() > 0)
System.out.println(Arrays.toString(printerList.getSelection()));
}
});
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}