どのように私は、JFaceのメニューのすべての画像を無効にするが、それらはツールバーで有効に残すことができます
質問
私はJFaceのアプリケーションで使用される一連のアクションを作成して、私はそれらのアクションに画像を割り当てた場合、私はしたくない。ここで、
、これらの画像は、((私はそれらをしたい)ツールバーの両方にとメニューに表示しますそれら)。
(最初の場所での行動のポイントの一部を排除)アクションの2つの完全に独立したセットを供給以外に、どのように私は、これらの画像は、ONLYツールバーに表示持つように手配し、メニューはテキストのみを表示することができます。<? / P>
解決 3
Iは、本質的に、アクションを複製ペアを作り、画像を有するもの、なしで、第1の場所(ため息)のアクションの利益を排除することになりました。一方、各アクションだけで作業を実行するために、コントローラ内の単一のメソッドを呼び出すないので、それはあまりにも陰湿とペアをグループ化ではありません一緒に何が起こっているのか、それが合理的に明らかになります。
他のヒント
(私は、ツールバーやメニューの異なるテキストを望んでいた点が異なります。)
私もこの問題に遭遇した私は、同じアクションを使用して終了したが、それの2つの異なるインスタンスます。
// 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
}
所属していません StackOverflow