どのように私は、JFaceのメニューのすべての画像を無効にするが、それらはツールバーで有効に残すことができます

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

  •  09-09-2019
  •  | 
  •  

質問

私は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
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top