2 红色背景的java中矩形的光滑圆角

2 java swing

如何在java中创建一个只有2个角且左侧光滑圆度的矩形?

是指在java中具有左上角和左下角圆滑角且背景填充红色的矩形吗?

我搜索了SO并用谷歌搜索,但找不到两个光滑的圆角。

Oli*_*ins 6

只需创建一个与此类似的圆角矩形:

RoundRectangle2D roundedRectangle = new RoundRectangle2D.Float(10, 10, 240, 160, 10, 10);
Run Code Online (Sandbox Code Playgroud)

然后从中点到右侧所需的点绘制一个正常的矩形。

示例图:

在此输入图像描述

注意:确保没有边框。我把它们画出来是为了达到说明的效果。

代码:

     Graphics2D g2 = (Graphics2D) g;
     RenderingHints qualityHints = new RenderingHints(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON );
        qualityHints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY );
        g2.setRenderingHints( qualityHints );         


     g2.setPaint(Color.RED);

     double x = 50;
     double y = 50;
     double w = x + 250;
     double h = y + 100;
     g2.fill(new RoundRectangle2D.Double(x, y, w, h, 50, 50));

     g2.fill(new Rectangle2D.Double(x + 100,y,w,h));
Run Code Online (Sandbox Code Playgroud)