更改侦察日食按钮上的图标

时间:2014-09-05 13:11:54

标签: image button toggle eclipse-scout

我想在scout eclipse中实现一些想法切换按钮。 我需要的是改变状态按钮的图像。

我看到了功能

setIconId(String)

但我不知道如何找到此功能的参数。如何找到侦察用于不同按钮状态的图像?

马尔科

1 个答案:

答案 0 :(得分:2)

setIconId(..)和图标

在Scout应用程序中,最好从setIconId(..) Icons类中定义的常量作为参数传递。请参阅维基上的Icons page

您的用例示例:

setIconId(Icons.WeatherSun)

Demo Widget Application中有一个Icons class

org.eclipsescout.demo.widgets.shared.Icons 

这里定义了一些常量:

public static final String WeatherRain = "weather_rain";
public static final String WeatherSnow = "weather_snow";
public static final String WeatherSun = "weather_sun";

常量中定义的值表示图像的标识符。

图像查找由ImageLocator实现。 (根据UI技术,将使用相应的IconLocator。例如,在Swing SwingIconLocator实现的情况下。)

如果weather_sun,ImageLocator的默认实现将查找名为weather_sun.<ext>的文件(其中<ext>可以是gifpng等等on)在每个插件的\resources\icons\文件夹中。在这种情况下,它将找到文件:\org.eclipsescout.demo.widgets.client\resources\icons\weather_sun.png

如果找不到图像,您将看到如下日志条目:

!MESSAGE org.eclipse.scout.rt.ui.swing.SwingIconLocator.warnImageNotFound(SwingIconLocator.java:141) could not find image 'weather_sun'

在Scout SDK中,有一个Icons Editor。此编辑器表示Icons类中定义的所有常量以及相应的Icon。是否找到未找到红色方块的文件而不是图像。


切换按钮

切换按钮没有特定字段,请使用AbstractButton将显示样式设置为DISPLAY_STYLE_TOGGLE

另见:


更改Toogle按钮中的图标

我认为此代码段可以满足您的需求:

@Order(10)
public class ToggleButton1 extends AbstractButton {
  @Override
  protected boolean getConfiguredProcessButton() {
    return false;
  }

  @Override
  protected void execClickAction() throws ProcessingException {
    if (isSelected()) {
      setIconId(Icons.WeatherSun);
    }
    else {
      setIconId(Icons.WeatherRain);
    }
  }
}

使用execToggleAction代替execClickAction也是可能的(甚至更好)。

截图:

Eclipse Scout - Toogle Button with Icon - Swing UI