SWT中的Java编程
嗨。。我有这段java代码SWT中的Java编程,java,swt,Java,Swt,嗨。。我有这段java代码 import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.Fi
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.RowLayout;
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.Shell;
import org.eclipse.swt.widgets.Text;
public class testTabs {
static int count;
public static void main (String [] args) {
Display display = new Display ();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
shell.setText("SWT TabFolder Example");
CTabFolder folder = new CTabFolder(shell,SWT.NONE);
CTabItem item = new CTabItem(folder,SWT.UP);
item.setText("First");
CTabItem item1 = new CTabItem(folder,SWT.UP);
item1.setText("First new");
//---------------------------------------------------
CTabFolder fold = new CTabFolder(folder,SWT.UP);
CTabItem ite = new CTabItem(fold,SWT.UP);
ite.setText("Second");
final Composite test = new Composite(fold,SWT.NONE);
test.setLayout(new RowLayout());
Text tab1 = new Text(test,SWT.NONE);
tab1.setText("Testing");
tab1.setEditable(true);
ite.setControl(test);
item.setControl(fold);
Button add = new Button(test,SWT.PUSH);
add.setText("ADD");
SelectionAdapter adap = new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
Composite newcomp = new Composite(test,SWT.BORDER_DASH);
Text testtext = new Text(newcomp,SWT.BORDER_SOLID);
testtext.setText("Inside new Comp");
count++;
System.out.println(count);
Control array[] = shell.getChildren();
System.out.println(array.length);
shell.pack();
}
};
add.addSelectionListener(adap);
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch()){
display.sleep();
}
}
}
}
当我运行此命令时,复合“newcomp”不可见。。有人能帮我吗?如果我修改了你的代码,只添加一个布局,那么它就可以工作了:
public void widgetSelected(SelectionEvent e) {
Composite newcomp = new Composite(test,SWT.BORDER_DASH);
newcomp.setLayout(new RowLayout());
....
如果我修改您的代码以仅添加布局,则它可以工作:
public void widgetSelected(SelectionEvent e) {
Composite newcomp = new Composite(test,SWT.BORDER_DASH);
newcomp.setLayout(new RowLayout());
....
在
widgetSelected
方法的末尾尝试使用test.layout()
让我们知道它是否有效。在
widgetSelected
方法的末尾尝试使用test.layout()
让我们知道它是否有效