버튼 파일 대화 상자을 열고 특정 라벨에 표시 할 이미지를 선택하십시오.rcp 및 swt/jface 구성 요소를 사용하여 버튼으로 라벨에 동적 이미지를 추가하는 방법
레이블 컨트롤 에서 선택한 이미지를 사용하여 절대 경로 또는 상대 경로를 설정하려고하지만 동적으로 올바르게 작동하지 않습니다.
제 질문에 도움주세요. 해결하십시오.
버튼 파일 대화 상자을 열고 특정 라벨에 표시 할 이미지를 선택하십시오.rcp 및 swt/jface 구성 요소를 사용하여 버튼으로 라벨에 동적 이미지를 추가하는 방법
레이블 컨트롤 에서 선택한 이미지를 사용하여 절대 경로 또는 상대 경로를 설정하려고하지만 동적으로 올바르게 작동하지 않습니다.
제 질문에 도움주세요. 해결하십시오.
자바 SWT로드 및 버튼
동적
에서 보거나 편집 할 이미지의 크기를 조정은의 FileDialog 상자를 열려면 클릭하고 특정 레이블에 표시 할 모든 이미지를 선택했습니다.
하여 ImageLoader 클래스에서 이미지를로드하고, 파일 또는 스트림
imageData의 클래스를 이미지를 저장하는 데 사용하는 이미지
SWT의 이미지 클래스의 장치 독립적 안내 GUI로 이미지를 표시하는 데 사용할 수 있습니다.
package rcp_demo.Editor;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.ImageLoader;
public class ProductEditor extends EditorPart {
public static final String ID="rcp_demo.Editor.product";
private Text text;
private CLabel lbl_image_text;
private static final String[] FILTER_NAMES = {
"Images(*.jpg)","Images(*.jpeg)","Images(*.png)","All Files (*.*)"};
// These filter extensions are used to filter which files are displayed.
private static final String[] FILTER_EXTS = { "*.jpg", "*.jpeg", "*.png", "*.*"};
public void createPartControl(final Composite parent) {
parent.setLayout(null);
//Layout with absolute positioning components.
text = new Text(parent, SWT.BORDER);
text.setBounds(25, 57, 169, 19);
Button btnOpen = new Button(parent, SWT.NONE);
btnOpen.setText("open");
btnOpen.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
FileDialog dialog = new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.OPEN);
dialog.setFilterNames(FILTER_NAMES);
dialog.setFilterExtensions(FILTER_EXTS);
String result = dialog.open();
if(result!=null)
{
text.setText(result);
Image image=SWTResourceManager.getImage(result);
ImageData imgData = image.getImageData();
imgData=imgData.scaledTo(200, 200);
ImageLoader imageLoader = new ImageLoader();
imageLoader.data = new ImageData[] {imgData};
imageLoader.save(result, SWT.IMAGE_COPY);
System.out.println(imgData.width+"....."+imgData.height);
lbl_image_text.setBounds(25,88,imgData.width+10,imgData.height+10);
//Image size set to Label
//lbl_image_text.setBounds(25,88,image.getBounds().width+10,image.getBounds().height+10);
lbl_image_text.setImage(SWTResourceManager.getImage(result));
}
}
});
btnOpen.setText("open");
lbl_image_text = new CLabel(parent, SWT.Resize);
}
}
CLabel 클래스는 Label 클래스에 대한 몇 가지 고급 기능을 제공합니다. 이 클래스는 텍스트 레이블과 이미지 레이블을 동시에 표시 할 수 있습니다.
lbl_image_text.setText("Welcome");
lbl_image_text.setImage(SWTResourceManager.getImage("Image Path"));
['Layout's] (http://www.eclipse.org/articles/article.php?file=Article-Understanding-Layouts/)를 사용하여 조사해라. index.html). 절대 위치/크기 조정은 결국 문제를 일으킬 수 있습니다. – Baz
@Baz 절대 위치 지정 구성 요소가있는 레이아웃 .. 레이아웃 디자인 시간 설정 (EditorPart 확장) .. thanks –
지금까지 시도한 것과 정확히 어디에 붙어 있는지 표시하십시오. –
@ Rüdiger Herrmann 나는이 해결책을 찾는다. 사전에 감사한다 –