swt对文件的 操作
选择文件:
FileDialog fileselect=new FileDialog(shell); fileselect.setFilterNames(new String[]{"*.*","所有文件"}); fileselect.setFilterExtensions(new String[]{"*.*","*.*"}); String url=""; url=fileselect.open(); System.out.println(url);
选择文件夹:
SWT实现的文件夹选择窗口2008-09-09 09:20 protected void fileDig(Shell parent){ //新建文件对话框,并设置为打开的方式 FileDialog filedlg=new FileDialog(parent,SWT.OPEN); //设置文件对话框的标题 filedlg.setText("文件选择"); //设置初始路径 filedlg.setFilterPath("SystemRoot"); //打开文件对话框,返回选中文件的绝对路径 String selected=filedlg.open(); System.out.println("您选中的文件路径为:"+selected); } protected void folderDig(Shell parent){ //新建文件夹(目录)对话框 DirectoryDialog folderdlg=new DirectoryDialog(parent); //设置文件对话框的标题 folderdlg.setText("文件选择"); //设置初始路径 folderdlg.setFilterPath("SystemDrive"); //设置对话框提示文本信息 folderdlg.setMessage("请选择相应的文件夹"); //打开文件对话框,返回选中文件夹目录 String selecteddir=folderdlg.open(); if(selecteddir==null){ return ; } else{ System.out.println("您选中的文件夹目录为:"+selecteddir); } }
//text实现换行
text = new Text(composite, SWT.BORDER | SWT.MULTI);//一,改方法利用canvas实现,可以实现图片缩放,但是速度太慢,最终舍弃
Canvas canvas = new Canvas(this, SWT.BORDER); GridData gd_canvas = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_canvas.heightHint = 130; gd_canvas.widthHint = 148; canvas.setLayoutData(gd_canvas); Canvas canvas_1 = new Canvas(this, SWT.BORDER); GridData gd_canvas_1 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_canvas_1.heightHint = 132; gd_canvas_1.widthHint = 144; canvas_1.setLayoutData(gd_canvas_1); new Label(this, SWT.NONE); Label lblNewLabel = new Label(this, SWT.NONE); lblNewLabel.setText("图片一"); new Label(this, SWT.NONE); Label lblNewLabel_1 = new Label(this, SWT.NONE); lblNewLabel_1.setText("图片二"); new Label(this, SWT.NONE); new Label(this, SWT.NONE); Button btnNewButton = new Button(this, SWT.NONE); btnNewButton.setText("上传文件"); btnNewButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { FileDialog fileselect=new FileDialog(getShell()); fileselect.setFilterNames(new String[]{"*.*","所有文件"}); fileselect.setFilterExtensions(new String[]{"*.*","*.*"}); String url=""; url=fileselect.open(); System.out.println(url); Image image = new Image(Display.getDefault(),url); final int imgWidth = image.getBounds().width; final int imgHeight = image.getBounds().height; canvas.addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent event) { event.gc.drawImage(image, 0, 0, imgWidth, imgHeight, 0, 0, event.width, event.height); } }); } }); new Label(this, SWT.NONE); Button btnNewButton_1 = new Button(this, SWT.NONE); btnNewButton_1.setText("上传文件"); btnNewButton_1.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { FileDialog fileselect=new FileDialog(getShell()); fileselect.setFilterNames(new String[]{"*.*","所有文件"}); fileselect.setFilterExtensions(new String[]{"*.*","*.*"}); String url=""; url=fileselect.open(); System.out.println(url); Image image = new Image(Display.getDefault(),url); final int imgWidth = image.getBounds().width; final int imgHeight = image.getBounds().height; canvas_1.addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent event) { event.gc.drawImage(image, 0, 0, imgWidth, imgHeight, 0, 0, event.width, event.height); } }); } });
二,利用直接显示图片 ,速度很快,缺点不能缩放图片
lblNewLabel_1.setImage(new Image(Display.getDefault(), "D:/2.jpg"));
1利用 canval属性
Image image = new Image(Display.getDefault(),"D:/2.jpg");
Canvas canvas = new Canvas(container, SWT.NONE);
final int imgWidth = image.getBounds().width;
final int imgHeight = image.getBounds().height;
canvas.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent event) {
event.gc.drawImage(image, 0, 0, imgWidth, imgHeight, 0, 0, event.width, event.height);
event.gc.drawImage(image, imgWidth, imgHeight);
}
});
2利用 lable
Label label = new Label(this, SWT.NONE);
// Label label = new Label(shell, SWT.NONE);
// Label label = new Label(container, SWT.NONE);
label.setImage(new Image(Display.getDefault(), "D:/2.jpg"));
图片缩放
Image image = new Image(Display.getDefault(),url);
ImageData imageData =image.getImageData();
// Image newImage = new Image(image.getDevice(), imageData.scaledTo(imageData.width / 4, imageData.height / 4));
Image newImage = new Image(image.getDevice(), imageData.scaledTo(250,
180));
lblNewLabel_11.setImage(newImage);
//或者
item_1.setImage(new Image(display,image.getImageData().scaledTo((int)(width*0.22),(int)(height*0.22))));