将图像添加到标签建议中

时间:2012-05-17 15:07:43

标签: eclipse-plugin swt eclipse-rcp

在我的项目中,我需要在一个复合中创建一些播放,暂停,停止按钮。 为此我创建了一个复合并在那里添加了这些按钮。我也添加了图像 对于每个按钮。但绘制后,它看起来并不好。我的意思是按钮上的图像看起来不太好。客户不满意。现在是否可以将图像添加到标签并为标签提供一些切换按钮操作?我知道我可以在标签上添加图像。但是当我点击标签时,它不会产生按钮效果..

2 个答案:

答案 0 :(得分: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
    }           
});

对于一个不错的用户界面,你还可以添加一个MouseTrack监听器,并为鼠标状态提供不同的图像。

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

答案 1 :(得分: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);