كيف يمكنني تعطيل جميع الصور لقائمة JFACE ولكن تركها ممكنة في شريط الأدوات

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

  •  09-09-2019
  •  | 
  •  

سؤال

إذا قمت بإنشاء مجموعة من الإجراءات التي سيتم استخدامها في تطبيق JFACE وتقيي الصور إلى تلك الإجراءات، تظهر هذه الصور في كل من شريط الأدوات (حيث أريدهم) وفي القوائم (حيث لا أريدهم).

بخلاف تزويد مجموعتين منفصلتين تماما من الإجراءات (مما يلغي جزءا من نقطة الإجراءات في المقام الأول)، كيف يمكنني ترتيب أن أتعرض هذه الصور المعروضة فقط في شريط الأدوات، ولديها القوائم عرض نصي فقط؟

هل كانت مفيدة؟

المحلول 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() { ... }

يتم تعريفه في فئة الإجراءات، ويبدو أن يؤدي إلى إرجاع نوع عنصر الواجهة الذي تمثله الإجراء بيانيا كما. لذلك، يمكنك تجاوز طريقة GetImagedScriptor ():

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