swt浏览文件 显示文件目录 swt显示图片以及图片缩放处理

来源:互联网 发布:华农c语言实验答案 编辑:程序博客网 时间:2024/05/22 02:25

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:20protected 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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))));


 
原创粉丝点击