可能有几种方法可以实现这一点,但我能想到的最简单的方法是,正如安德鲁已经暗示的那样,将是定义自己的形状

import java.awt.Dimension;

import java.awt.EventQueue;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import java.awt.geom.Path2D;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.UIManager;

import javax.swing.UnsupportedLookAndFeelException;

public class SimpleShape {

public static void main(String[] args) {

new SimpleShape();

}

public SimpleShape() {

EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {

ex.printStackTrace();

}

JFrame frame = new JFrame("Testing");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(new TestPane());

frame.pack();

frame.setLocationRelativeTo(null);

frame.setVisible(true);

}

});

}

public class TestPane extends JPanel {

private RightEnd rightEnd;

public TestPane() {

rightEnd = new RightEnd(100, 100, 40);

}

@Override

public Dimension getPreferredSize() {

return new Dimension(100, 100);

}

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

int x = (getWidth() - 100) / 2;

int y = (getHeight()- 100) / 2;

Graphics2D g2d = (Graphics2D) g.create();

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

g2d.translate(x, y);

g2d.fill(rightEnd);

g2d.dispose();

}

}

public class RightEnd extends Path2D.Float {

public RightEnd(float width, float height, float radius) {

moveTo(0, 0);

lineTo(width - radius, 0);

curveTo(width, 0, width, 0, width, radius);

lineTo(width, height - radius);

curveTo(width, height, width, height, width - radius, height);

lineTo(0, height);

closePath();

}

}

}

java圆角矩形_如何在java中绘制自定义圆角矩形?相关推荐

  1. opencv rect画旋转矩形_在opencv c中绘制旋转的矩形

    既然你想要一个填充的矩形,你应该使用fillConvexPoly: // Include center point of your rectangle, size of your rectangle ...

  2. hive 元数据 自定义_如何在Hive中创建自定义函数UDF及如何直接通过Impala的同步元数据重用UDF的jar文件-阿里云开发者社区...

    如何在Hive中创建自定义函数UDF及使用 如何在Impala中使用Hive的自定义函数 UDF函数开发 使用Intellij工具开发Hive的UDF函数,进行编译: 1.使用Intellij工具通过 ...

  3. xmind可以画流程图吗_如何在XMind 中绘制流程图?

    XMind 是专业强大的思维导图软件,由于其结构没有任何限制,很多朋友特别喜欢用它来绘制流程图.那么,就出现这样一个问题,如何在 XMind 中绘制流程图?下面就和小编一起来看看吧! 如何在 XMin ...

  4. java 正则表达式 开头_如何在Java中修复表达式的非法开头

    java 正则表达式 开头 您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们仔细阅读一下,研究如何解决表达式Java非法开头错误. 这是一个动态错误,这意味着编译器会发现某些不符合Jav ...

  5. java soap 头_如何在Java中添加Soap标头

    我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...

  6. java实现递归算法_如何在Java中实现二进制搜索算法而无需递归

    java实现递归算法 by javinpaul 由javinpaul 流行的二进制搜索算法的迭代实现,用于在排序数组中查找元素. (An Iterative implementation of the ...

  7. java jcombobox长度_如何在JToolBar中设定JComboBox的大小?

    如何在JToolBar中设定JComboBox的大小? 我设计了一个JToolBar,并且在上边添加了一个JComboBox,可是我发现这个JComboBox长度无法控制,它将JToolBar上剩余空 ...

  8. java 全局数组_如何在Java中声明全局数组?

    我有一个程序在Java中乘以两个矩阵.我在全局错误声明中发现了一些错误. 这里是我的代码如何在Java中声明全局数组? import java.util.Scanner; /**WAP in Java ...

  9. java插入图片_如何在java窗体程序中添加图片

    打开eclipse,创建一个java工程项目,创建完后在src下新建一个类Window,由于要插入图片,所以还在工程目录下创建一个文件夹imgs,里面放了一张60*60的图片,创建后的工程目录和图片, ...

  10. java安卓计时器_如何在android中设置计时器

    通过java.util.Timer和java.util.TimerTask使用计时器的标准Java方法在Android中运行良好,但是你应该知道这个方法创建了一个新线程. 您可以考虑使用非常方便的Ha ...

最新文章

  1. 教练如何引导学员在线报名
  2. java 乐观锁 实例_JAVA乐观锁实现-CAS(示例代码)
  3. 非常全的VS Code快捷键
  4. php windowcrlf和unix,文件格式unix与dos转换,CRLF与LF的区别查看
  5. 在线正则表达式可视化工具
  6. 菲尔·席勒(Phil Schiller)卸任苹果全球营销高级副总裁,升任苹果研究员
  7. java类库编程_进阶Java编程(5)基础类库
  8. 【剧透】2017云栖大会•北京峰会——企业云上业务优化专场
  9. c语言做游戏音效,游戏背后辛苦付出的劳动者—游戏音效师
  10. Swing Copters摇摇欲坠游戏再次风靡全球,再次虐心,摔手机
  11. 1007 Maximum Subsequence Sum (25 分) java 题解
  12. 操作系统接口shell
  13. 实现NRF52832蓝牙DFU无线升级
  14. 基于springboot开发的停车场管理系统-计算机毕业设计
  15. MySQL PHP操作数据库
  16. 面对股市大跌,接下来这么做就对了
  17. C++字符输入方式详解
  18. 用于三维医学图像检测的半监督学习——FocalMix: Semi-Supervised Learning for 3D Medical Image Detection
  19. WARNING: An illegal reflective access operation has occurred
  20. EasyUi之Dialog(对话框窗口)

热门文章

  1. HTTP 返回状态码
  2. scara机器人dh参数表_scara机器人技术参数
  3. java语言运行机制
  4. Maxima绘图基础
  5. C语言中ret的作用,c-RET抑制剂 | c-RET Inhibitor
  6. Acquiring a token for Kubernetes dashboard
  7. ubuntu 16.04 Titanxp 安装cuda10.0 cudnn7.6 环境
  8. OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading “D:\Anaconda\envs\pytorch-1.4\lib\site-package
  9. 2019大数据未来七大发展方向
  10. 系统全面的认识Solr