在AWT中删除Container(ScrollPane)边框

时间:2011-10-19 09:23:15

标签: java swing awt

我一直在寻找一种解决方案来删除AWT ScrollPane中的默认边框。

在JScrollPane中它相当简单..

  

paneScrollPane.setBorder(BorderFactory.createEmptyBorder());

  

paneScrollPane.setBorder(空);

只是想知道我们能否在ScrollPane

的情况下达到同样的效果

3 个答案:

答案 0 :(得分:2)

这可能是不可能的。 AWT的一个主要缺点是您实际上无法绘制或自定义AWT组件的视图。

我可能做的唯一建议是你可以尝试在你的ScrollPanel周围创建画画边框。

答案 1 :(得分: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);
    }
}

答案 2 :(得分:1)

这是不可能的,因为AWT实现Look and Feel并且强烈基于来自Native OS(Themes)的方法,Border仅针对{{1}实现},