Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JScrollPane上绘制圆形边框_Java_Swing_Border - Fatal编程技术网

Java 在JScrollPane上绘制圆形边框

Java 在JScrollPane上绘制圆形边框,java,swing,border,Java,Swing,Border,我试图在JScrollPane周围绘制一个圆形矩形。为了我的生命,我不知道该怎么做!无论我尝试什么,边界都不可见。我发现它是在内容背后,而不是在内容之上。滚动窗格中唯一的东西是一个带有一些图形的JPanel。有人知道如何解决这个问题吗 以下是我尝试在滚动窗格上绘制边框的代码: public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g;

我试图在
JScrollPane
周围绘制一个圆形矩形。为了我的生命,我不知道该怎么做!无论我尝试什么,边界都不可见。我发现它是在内容背后,而不是在内容之上。滚动窗格中唯一的东西是一个带有一些图形的
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
,但没有这样的运气

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

这不需要任何自定义。只需使用

创建具有指定颜色、厚度和角形状的线边框

在哪里

圆角
-边框角是否应为圆形


谢谢你的快速回复!!我该怎么做?您应该调查Border及其子类,确定它们是否符合您的要求(PlainBorder可能会),并调查Borders如何使用插入来在组件周围创建更多空间