0

在我的项目中,我需要在一个组合中创建一些播放、暂停、停止按钮。为此,我创建了一个组合并在其中添加了这些按钮。我还为每个按钮添加了图像。但是画完之后就不好看了。我的意思是按钮上的图像看起来不太好。客户不满意。现在是否可以将图像添加到标签并为标签提供一些切换按钮操作?我知道我可以将图像添加到标签。但是当我单击标签时,它没有给出按钮效果..

4

2 回答 2

1

如果您想要自定义“按钮”外观,您可以使用带有自定义图像的标签(一个用于正常状态,一个用于“推送”状态。类似于:

final Label stop = new Label(composite, SWT.NONE);
stop.setSize(STOP_IMG.getImageData().width, STOP_IMG.getImageData().height)

stop.setBackgroundImage(STOP_IMG);
stop.addMouseListener(new MouseAdapter()
{
    @Override
    public void mouseUp(MouseEvent e)
    {
        stop.setBackgroundImage(STOP_IMG);              
    }

    @Override
    public void mouseDown(MouseEvent e)
    {
        stop.setBackgroundImage(STOP_DOWN_IMG);
        // DO ACTION
    }           
});

对于一个漂亮的 UI,您还可以添加一个 MouseTrack 侦听器,并为鼠标悬停状态提供不同的图像。

这样做的缺点是您使其难以访问,因为它只会响应鼠标事件。如果您采用这种方法,您应该考虑创建自己的扩展 MouseAdapter 的类,并在构造函数中调用标签、图像和操作,这样您就不会得到大量非常相似的匿名类。

于 2012-05-18T08:42:37.593 回答
0

我过去曾使用工具栏来达到很好的效果。

这将创建一个工具栏,其中包含一个行为类似于常规按钮的项目:

//Toolbar button
ToolBar toolBar = new ToolBar(composite,SWT.FLAT);
ToolItem toolItem = new ToolItem(toolBar,SWT.PUSH);
toolItem.setImage(image);

这将是一个工具栏,其中包含一个具有切换行为的项目:

//Create a toggle effect
ToolBar toggleToolBar = new ToolBar(composite,SWT.FLAT);
ToolItem toggleToolItem = new ToolItem(toggleToolBar,SWT.CHECK);
toggleToolItem.setImage(image);
于 2012-05-18T13:33:59.973 回答