2011-11-21 27 views
11

Ben bütün scrollpanes için bu kaydırma çubuğunu tasarlamak gerekir: Java Swing ileÖzel tasarım JScollPane Java Swing

enter image description here

. Netbeans IDE kullanıyorum. En basit çözüm nedir?

Çok teşekkür ederim.

Selamlar

+0

i seni anlamadı. Bir scrollpane, içerdiği öğenin boyutunun tehlikeye girmesi durumunda otomatik olarak bir kaydırma çubuğu ekler. – gprathour

cevap

16

Özel bir UI ayarlayarak tarafından Salıncak bileşeninin görünümünü özelleştirebilirsiniz overrode. bir kaydırma levhadaki kaydırma çubuğu durumda, MyScrollBarUIjavax.swing.plaf.basic.BasicScrollBarUI türetilmiştir

scrollPane.getVerticalScrollBar().setUI(new MyScrollBarUI()); 

yok. Eğer herhangi bir Swing bileşenleri oluşturmak önce tüm kaydırma çubukları için Bunu yapmak için (sadece JScrollPane durumlarda),

UIManager.put("ScrollBarUI", "my.package.MyScrollBarUI"); 

diyoruz.

public class MyScrollBarUI extends BasicScrollBarUI { 

    @Override 
    protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { 
     // your code 
    } 

    @Override 
    protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { 
     // your code 
    } 
} 

Sizin kaydırma çubuğu grafiksel çok basittir, nedenle uygulamak için çok zor olmamalı:

MyScrollBarUI, aşağıdaki yöntemleri geçersiz kılar.

+1

Güzel cevap 'korumalı boşluğu geçersiz kılmak için emin olun çok –

+0

teşekkür ederim genişletilmiş (veya uygulanan) vardır paintTrack (Grafik g, JComponent c Dikdörtgen trackBounds) ve '[BasicScrollBarUI] içinde paintThumb' (aynı yöntem imzası) (http://docs.oracle.com/javase/6/docs/api/javax/swing/plaf/ basic/BasicScrollBarUI.html) veya bir şey görmeyebilirsiniz. – Nateowami

+0

BasicScrollBarUI'yi genişletmek değil, şu anda kullanılan kaydırma çubuğu UI sınıfını genişletmek mümkün değil miydi? Gibi 'scrollthar.getUI(). GetClass()' genişletir? – Bowi

1

1) geçersiz kılma JToolBar

2) Custom Look and Feel çoğu

+1

kaydırma için araç çubuğundaki ilişkisi ... yani ;-) Plus (sonuçta o Pazartesi sabahı): Eğer yöntemlerini geçersiz, sınıflar – kleopatra

0

unutma o daha sonra bu

UIManager.put("ScrollBarUI", "my.custom.SimpleScrollBarUI"); 

senin SimpleScrollBarUI sınıfı gibi tüm kaydırma çubukları geçersiz kılmak için UIManager kullanmayı planlıyorsanız zorunluluk var createUI yöntemi, yani:

public class SimpleScrollBarUI extends BasicScrollBarUI { 

    public static ComponentUI createUI(JComponent c) { 
     return new SimpleScrollBarUI(); 
    } 

    //... 

}