2011-10-19 32 views
2

我正在尋找解決方案來刪除AWT ScrollPane中的默認邊框。在AWT中刪除容器(ScrollPane)邊框

在JScrollPane的其相當簡單..

paneScrollPane.setBorder(BorderFactory.createEmptyBorder());

paneScrollPane.setBorder(空);

只是想知道,我們可以實現滾動窗格

的情況下

回答

2

這可能是不可能的。 AWT的一個主要缺點是您無法實際繪製或定製AWT組件的視圖。

我可能會做的唯一建議是,您可以嘗試在您的ScrollPanel周圍創建繪製邊框的畫布。

+0

自定義畫布將與ScrollPane一樣艱苦工作btw +1 – mKorbel

1

是不可能的,因爲AWT實現Look and Feel,強烈基於從本機OS(Themes)來到方法相同的效果,Border只是實現爲Swing JComponents,

+0

那麼有沒有任何其他的方式來刪除默認的邊界是出現在ScrollPane上?謝謝.. – tiger

+0

因爲我知道有沒有正確的方法,也許存在骯髒的黑客如何提取邊框和改變顏色,你必須嘗試什麼組件返回ScrollPane,但我仍然不知道任何理由使用歷史上死於上一次Centaury的組件 – 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); 
    } 
}