-4

我想将图像设置为工具项。但是,我的程序不起作用,它只显示一个空窗口。

到目前为止我的代码:

import org.eclipse.swt.*;

import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.*;

public class test
{
    public static void main(String [] args)
    {
        Display display = new Display( );
        final Shell shell = new Shell(display);
        shell.setSize(900, 200);

        final ToolBar t=new ToolBar(shell,SWT.NONE);
        Image image=new Image(display,"C:\\Users\\ART\\Documents\\Parsian\\bottum.jpg");

        final ToolItem ti=new ToolItem(t,SWT.NONE);
        ti.setImage(image);
        ti.setText("test");

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

1 回答 1

1

您的代码缺少的是魔术功能Control#pack()

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

    final ToolBar bar = new ToolBar(shell, SWT.FLAT | SWT.WRAP | SWT.RIGHT);
    final ToolItem item = new ToolItem(bar, SWT.PUSH);
    Image image = new Image(display, "img/star.png");
    item.setImage(image);
    item.setText("test");

    /* Add this pack() call */
    bar.pack();
    shell.setSize(400, 250);
    shell.open();
    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

它看起来像这样:

在此处输入图像描述

于 2012-12-11T22:03:03.397 回答