我正在尝试使用以下代码创建一个带按钮的简单窗口:
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的书吗?
答案 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初学者的必读内容: