我是RCP的初学者,刚开始构建RCP应用程序。我想在编辑器中使用像Button,comboBox,Checkbox这样的GUI组件。我设法在Extensions中添加一个编辑器并为它创建一个类。我已经编写了在creatPartControl中创建标签的代码,但它不起作用。我得到一个黑色的窗口。我应该像这样添加编辑器
layout.addStandaloneView(Editor.id, true, IPageLayout.TOP,0.7f,
layout.getEditorArea());
layout.addStandaloneView(View.ID, true, IPageLayout.BOTTOM,0.4f,
layout.getEditorArea());
请帮我解决这个问题。如果可能,请举例说明如何添加编辑器并在其中创建标签和按钮。
提前谢谢你的帮助
我在createPartControl()
parent.setLayout(new GridLayout());
Button b=new Button(parent,SWT.TOGGLE);
b.setText("Hello ");
Label label1 = new Label(parent, SWT.NONE);
label1.setText("First Name");
package com.hello;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.EditorPart;
public class Editor extends EditorPart {
public static final String ID = "TestApplication.editor3";
public Editor() {
// TODO Auto-generated constructor stub
}
@Override
public void doSave(IProgressMonitor monitor) {
// TODO Auto-generated method stub
}
@Override
public void doSaveAs() {
// TODO Auto-generated method stub
}
@Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
// TODO Auto-generated method stub
}
@Override
public boolean isDirty() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isSaveAsAllowed() {
// TODO Auto-generated method stub
return false;
}
@Override
public void createPartControl(Composite parent) {
Label label = new Label(parent, SWT.NONE);
label.setText("sssssss");
}
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
}
答案 0 :(得分:0)
自从我在Eclipse编辑器上工作已经有几年了。这是编辑器的屏幕截图,因此您可以看到我做的不仅仅是添加按钮。
由于我正在构建的编辑器,我必须创建自己的Canvas版本和我自己的IDocument版本。
答案 1 :(得分:0)
您没有正确初始化编辑器,在打开编辑器时会导致问题。填写您的init()
方法,如下所示,看看是否有帮助:
@Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
setSite(site);
setInput(input);
}