如何禁用所有图像为JFace的菜单,但留给他们的工具栏中启用

StackOverflow https://stackoverflow.com/questions/734841

  •  09-09-2019
  •  | 
  •  

如果我创建了一套在JFace的应用程序中使用动作和我指定图像的动作,这些图像显示了这两个工具栏(在这里我希望他们)在和菜单(在这里我不想它们)。

除了供给两个完全独立的操作集合(其消除的在第一位置的操作点的一部分),如何可以安排为具有这些图像仅在工具条显示,并且具有菜单仅显示文本<? / p>

有帮助吗?

解决方案 3

我结束了基本上复制的动作,使得对中,一个具有图像,一个没有,从而消除了在第一位置(叹息)操作的益处。在另一方面,由于每个动作不只是调用一个方法在控制器执行的工作,这不是太阴险和分组对一起使得它相当清楚发生了什么事情。

其他提示

我就遇到了这个问题,以及(除了我想要的工具栏和菜单不同的文本。)我结束了使用相同的动作,但它的两个不同的实例。

// Use this one in the menu
Action a = new Action();

// Use this one in the toolbar
Action a2 = new Action();
a2.setImageDescriptor(img);

另外,还可以存储在工具栏版本操作的图像描述符,并将其设置为null菜单版本。

我还没有这个检查自己,但给这个方法的LOOKSEE:

public int getStyle() { ... }

它在Action类定义,并且它似乎返回操作被图形地表示为接口元件的类型。如此便可可以覆盖getImageDescriptor()方法:

public ImageDescriptor getImageDescriptor() {
    if (getStyle() == AS_DROP_DOWN_MENU)
        return null; // No icon in a menu
    return someImageDescriptor; // Actual icon
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top