我正在尝试在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
,但没有运气!
答案 0 :(得分:1)
你实际上是在组件边界之外绘画,这是一个很大的禁忌,这就是你遇到这个问题的原因。您应该考虑创建自定义Border或扩展组件插图,以便有空间绘制轮廓
答案 1 :(得分:1)
这不需要任何自定义。只需使用LineBorder(lineColor,thickness,roundedCorners)
..
创建具有指定颜色,粗细和角形的线条边框。
其中..
roundedCorners
- 边角是否应该是圆的