2011-10-19 4 views
2

AWT ScrollPaneのデフォルトボーダーを削除するソリューションを探していました。 JScrollPaneのでAWTのContainer(ScrollPane)ボーダーの削除

そのかなり単純..

paneScrollPane.setBorder(BorderFactory.createEmptyBorder())。

又は

paneScrollPane.setBorder(NULL)。

ちょうどAWTLook and Feelを実装し、強くネイティブOS(Themes)から来た方法に基づいており、Borderがちょうど実装されているので、我々はScrollPaneの

ことはできません

答えて

2

これはおそらく不可能です。 AWTの主な欠点の1つは、実際にあなたのAWTコンポーネントのビューを描画したりカスタマイズしたりすることができないということでした。

境界線を描画するScrollPanelの周りにキャンバスを作成してみることをお勧めします。

+0

Canvasをカスタマイズすることは、ScrollPaneと同じように難しいでしょう。btw +1 – mKorbel

1

の場合と同じ効果を得ることができます知りたいと思いましたSwing JComponentsの場合、

+0

ので、デフォルトの境界線を除去するための他の方法がありますScrollPaneに表示されますか?ありがとう.. – tiger

+0

私は適切な方法がないことを知っているので、おそらく、ボーダーを抽出して色を変更する方法が汚いハックが存在する場合、ComponentがScrollPaneを返す方法を試す必要がありますが、前回のCentauryで死んだPre-historicalコンポーネント – mKorbel

2

あなたがこの方法で使用できます。

JScrollPane scrollPane = new JScrollPane(list); 
scrollPane.setViewportBorder(null); 

を私はクラスjavax.swing.plaf.synth.SynthScrollPaneUIからこの情報を得た:

protected void paint(SynthContext context, Graphics g) { 
    Border vpBorder = scrollpane.getViewportBorder(); 
    if (vpBorder != null) { 
     Rectangle r = scrollpane.getViewportBorderBounds(); 
     vpBorder.paintBorder(scrollpane, g, r.x, r.y, r.width, r.height); 
    } 
} 
関連する問題