我如何将CtabFolder放置在SWT中的另一个CTabfolder内
问题描述:
请帮助我,我是SWT的原始人。 我想将CTabFolder
放在另一个CTabFolder
内。 我已经尝试了下面的代码,但它的不完整。我如何将CtabFolder放置在SWT中的另一个CTabfolder内
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import sun.awt.HorizBagLayout;
public class LayoutExample2
{
public static void main(String[] args) {
Display display=new Display();
Shell shell=new Shell(display);
shell.setLayout(new GridLayout());
CTabFolder ctf_main=new CTabFolder(shell,SWT.RIGHT_TO_LEFT);
CTabItem ctb1=new CTabItem(ctf_main,SWT.NONE);
ctf_main.setSimple(false);
ctf_main.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
ctf_main.pack();
ctb1.setText("Error Management Portal ");
CTabFolder ctf_inner=new CTabFolder(ctf_main,SWT.RIGHT_TO_LEFT);
CTabItem tbi1=new CTabItem(ctf_main,SWT.FLAT);
tbi1.setText("Search ");
shell.setMaximized(true);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
请帮我把Ctabfolder
内的另一个Ctabfolder
...
答
我看到这些问题:
你内心CTabItem
tbi1
有错误的母公司,它应该有内部的文件夹作为其亲本:
CTabItem tbi1 = new CTabItem(ctf_inner, SWT.FLAT);
您需要告诉CTabItem
关于它的控制与CTabItem.setControl()
方法。所以外卡具有内部文件夹作为其控制:
ctb1.setControl(ctf_inner);
你可能还需要创建内部文件夹的子把事情以正确显示:
Composite innerComp = new Composite(ctf_inner, SWT.NONE);
tbi1.setControl(innerComp);
我敢肯定' CTabItem'没有'setContent()'方法。 –