Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SWT中的Java编程_Java_Swt - Fatal编程技术网

SWT中的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

嗨。。我有这段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.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()

让我们知道它是否有效