0

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

我看功能

setIconId(String)

但我不知道如何找到这个函数的参数。如何找到侦察员用于不同按钮状态的图像?

马尔科

4

1 回答 1

2

setIconId(..) 和图标

在您的 Scout 应用程序中,将类setIconId(..)中定义的常量作为参数传递是一种很好的做法。Icons请参阅wiki 上的图标页面

您的用例示例:

setIconId(Icons.WeatherSun)

Demo Widget Application中有一个Icons 类

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";

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

Image 查找由ImageLocator实现。(根据 UI 技术,将使用适当的 IconLocator。例如,在 SwingSwingIconLocator实现的情况下)。

如果ImageLocator 的默认实现将在每个插件的文件夹中weather_sun查找名为weather_sun.<ext>(where <ext>can begifpng) 的文件。\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类中定义的所有常量和对应的图标。如果找不到文件,则会显示红色方块而不是图像。


切换按钮

Toggle Button 没有特定字段,请使用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 按钮 - Swing UI

于 2014-09-08T16:46:13.003 回答