2012-03-05 8 views
6

Önceden tanımlanmış stillerle birlikte SWT proje kontrollerimde (Button-s, Text-s, vb.) Bulunmak istiyorum. İlk fikrim, örneğin org.eclipse.swt.widgets.Text sınıfını genişletmek, bazı ayarları yapmak ve bu yeni sınıfları orijinal yerine kullanmaktı, ancak org.eclipse.swt.SWTException: Subclassing not allowed istisnasını aldım. Bu nasıl yapılır?SWT Ön tanımlı stillerle kontrol eder

cevap

8

Bir şey yapmamak için checkSubclass yöntemini geçersiz kılmanız gerekir, aksi halde alt sınıflamaya izin verilmediğinden şikayetçi olur - çünkü genellikle standart bileşenleri gerçekten geçersiz kılmamalısınız.

@Override 
protected void checkSubclass() { 
    // Disable the check that prevents subclassing of SWT components 
} 

Delegasyonu kullanarak ilkel denetimleri içeren özel widget'lar oluşturmayı da düşünmelisiniz. Örneğin, özel kurulumla birlikte Metin widget'ını içerecek MyText'i oluşturabilirsiniz.

Hatırlanması gereken şey, SWT'nin her platformda doğal olarak görünen standart denetimler sağlamasıdır. Yine de, standart bileşenlerin parlatılmasına hala izin verilir ve hatta üretim yazılımında bir zorunluluktur.

+0

Çok teşekkürler;) – marioosh

4

Bu sorun için SWT Faq'a bakın. Ayrıca, özel widget'lar nasıl yazılacağını da görebilirsiniz.