Java SWT - 向shell添加按钮

时间:2014-02-14 11:44:11

标签: java swt

我正在尝试使用以下代码创建一个带按钮的简单窗口:

public static void main(String[] args) 
{       
    Display display=new Display();
    Shell shell=new Shell();

    shell.open();
    shell.setText("Hi there!");
    shell.setSize(500,500);

    Button pushButton = new Button(shell, SWT.PUSH);
    pushButton.setText("Im a Push Button");
    //pushButton.pack();

    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }

    shell.dispose();
}

当注释掉“pushButton.pack()”行时,该按钮不会出现在窗口上。 是否真的有必要为我想添加的每个按钮调用pack()方法? 如果我有10个按钮怎么办?

for (int i=0; i<10; i++) {
    new Button(shell, SWT.RADIO).setText("option "+(i+1));
}

它将如何运作?

另外, 是否为在线初学者提供了一个很好的SWT教程? 你能推荐一本可以指导我完成SWT的书吗?

1 个答案:

答案 0 :(得分:2)

您的程序应如下所示:

public static void main(String[] args) 
{       
    Display display=new Display();
    Shell shell=new Shell();

    // Set a layout
    shell.setLayout(new FillLayout());
    shell.setText("Hi there!");

    Button pushButton = new Button(shell, SWT.PUSH);
    pushButton.setText("Im a Push Button");

    // Move the shell stuff to the end
    shell.pack();
    shell.open();
    shell.setSize(500,500);

    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
}

这样,您只需在pack()上拨打Shell一次。


这些绝对是SWT初学者的必读内容: