在JScrollPane上绘制圆角边框

时间:2014-11-07 21:01:30

标签: java swing border

我正在尝试在JScrollPane周围绘制一个圆角矩形。对于我的生活,我无法弄清楚如何做到这一点!无论我尝试什么,边界都不可见。我已经发现它正在绘制 BEHIND 内容而不是它们。滚动窗格中唯一的内容是JPanel,其上绘有一些图形。有谁知道如何解决这一问题?

以下是我尝试在滚动窗格上绘制边框的代码:

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    Graphics2D g2 = (Graphics2D) g;
    g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    g2.setColor(Color.black);
    g2.setStroke(new BasicStroke(1));
    g2.draw(new RoundRectangle2D.Double(0, 0, getWidth() - 1, getHeight() - 1, 10, 10));
}

我也尝试使用paint代替paintComponent,但没有运气!

2 个答案:

答案 0 :(得分:1)

你实际上是在组件边界之外绘画,这是一个很大的禁忌,这就是你遇到这个问题的原因。您应该考虑创建自定义Border或扩展组件插图,以便有空间绘制轮廓

答案 1 :(得分:1)

这不需要任何自定义。只需使用LineBorder(lineColor,thickness,roundedCorners) ..

即可
  

创建具有指定颜色,粗细和角形的线条边框。

其中..

  

roundedCorners - 边角是否应该是圆的