Wie füge ich eine Schaltfläche zum Schließen mit swt.TabItem hinzu?
TabFolder tabFolder = new TabFolder(composite, SWT.CLOSE);
TabItem tab1 = new TabItem(tabFolder, SWT.CLOSE);
tab1.setText("Tab 1");
TabItem tab2 = new TabItem(tabFolder, SWT.CLOSE);
tab2.setText("Tab 2");
Ich habe einen swt.TabFolder und es sind einige swt.TabItems darauf. Ich möchte einen Schließen-Button mit diesen TabItems haben, damit ich die gewünschten Tabs zur Laufzeit schließen kann. und ich möchte nicht CTabFolder oder CTabItem verwenden
Kann mir jemand sagen, was ich für diesen Zweck tun kann?
public DomainUI(Composite composite, TabFolder newTabFolder, boolean comingFromSelf)
{
boolean itemsDisposed = false;
TabItem[] itemsOnTabFolder = newTabFolder.getItems();
String[] namesOfItemsOnTabFolder = new String[itemsOnTabFolder.length];
if(comingFromSelf) // checking when to dispose other tabs
{
if(itemsOnTabFolder.length != 0)
{
for(int i=0; i<itemsOnTabFolder.length; i++)
{
namesOfItemsOnTabFolder[i] = itemsOnTabFolder[i].getText();
itemsOnTabFolder[i].dispose();
}
itemsDisposed = true;
}
}
final Composite compositeInTab = new Composite(newTabFolder, SWT.NONE);
compositeInTab.setLayout(null);
// CREATIION OF LABELS AND TEXTFIELDS
systemCodeLabel = new Label(compositeInTab, 0);
systemCodeText = new Text(compositeInTab, SWT.BORDER);
domainNameLabel = new Label(compositeInTab, 0);
domainNameText = new Text(compositeInTab, SWT.BORDER);
organizationalUnitLabel = new Label(compositeInTab, 0);
organizationalUnitText = new Text(compositeInTab, SWT.BORDER);
organizationNameLabel = new Label(compositeInTab, 0);
organizationNameText = new Text(compositeInTab, SWT.BORDER);
systemCodeLabel.setText("System Code");
domainNameLabel.setText("Domain Name");
organizationalUnitLabel.setText("Organizational Unit");
organizationNameLabel.setText("Organization Name");
newTabFolder.addMouseListener(new MouseAdapter()
{
public void mouseUp(MouseEvent arg0)
{
TabFolder curFolder = (TabFolder)arg0.widget;
Point eventLocation = new Point(arg0.x, arg0.y);
TabItem item = curFolder.getItem(eventLocation);
if(item == null)
return;
Image image = item.getImage();
// check if click is on image
if( eventLocation.x >= item.getBounds().x + image.getBounds().x && eventLocation.x <= item.getBounds().x + image.getBounds().x + image.getBounds().width
&& eventLocation.y >= item.getBounds().y + image.getBounds().y && eventLocation.y <= item.getBounds().y + image.getBounds().y + image.getBounds().height)
{
System.out.println("Close tab");
item.dispose();
}
else
{
System.out.println("Don't close tab");
}
}
});
}