`
瘋叻ハ.兩
  • 浏览: 81999 次
  • 性别: Icon_minigender_1
  • 来自: 宁德
社区版块
存档分类
最新评论

纯Swing 绘制圆角矩形【附图】

阅读更多

      先上图吧



      可以清楚地看到矩形边角是没有背影的。

      如果这是你想要的结果,那请接着往下阅读其实现过程

 

      1、环境要求:

            1.1 JDK版本: 因为用到了AWTUtilities,而这个类随JDK6 u10或更高的版本发布的。 本人用的JRE是

                MyEclipse 8.0自带的JRE。

            

 

            2.2 JAR包需求

                 不需要任何第三方JAR包。只要JDK的版本高于或等于JDK6 u10,程序即可正常运行。

 

      2、实现过程

            结合上篇的Java 2D文档加上代码注释,实现过程还是比较容易理解的

      3、源代码

 

import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Shape;
import java.awt.Toolkit;
import java.awt.geom.RoundRectangle2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

import com.sun.awt.AWTUtilities;

/****************************************
 * <p></p>
 * @version 2012-10-8
 * @author  crazyhost QQ:949507869
 * <dd>
 * 	<dt>Encoding:</dt>
 * 	<dd>UTF-8</dd>
 * </dd>
 ****************************************/
public class RoundedRectangle extends JFrame{

	private static final long serialVersionUID = 1L;
	private JPanel panel;
	private Dimension size=new Dimension(305, 400);
	
	final int R = 66;
	final int G = 194;
	final int B = 110;
	RoundedRectangle frame = this;
	
	public RoundedRectangle(){
		
		// 设置画笔颜色,填充或描边
		final Paint p = new GradientPaint(0.0f, 0.0f, new Color(R, G, B, 100),
			getWidth(), getHeight(), new Color(R, G, B, 200), true);
		
		panel = new JPanel(){ 
			private static final long serialVersionUID = 1L;

			public void paintComponent(Graphics g){
				Graphics2D g2d = (Graphics2D) g;
				g2d.setPaint(p);
				// 设置画笔颜色为白色
				g2d.setColor(new Color(255,255,255));
				g2d.fillRect(0, 0, getWidth(), getHeight());
				
				// 设置画笔颜色为蓝色
				g2d.setColor(new Color(41,141,208));
				Shape shape = null;
				shape = new RoundRectangle2D.Double(0, 0, frame.getWidth()-1, frame.getHeight()-1, 6.5D, 6.5D);
				g2d.draw(shape);		
				
			}
		};
		this.setSize(size);
		// 去除窗体的默认修饰,这是自定义的首要前提
		this.setUndecorated(true);
		// 将panel设置为内容窗体
		this.setContentPane(panel);
		this.setVisible(true);
		//重新设定可见区域
		setVisibleRegion(frame.getWidth(),frame.getHeight());	
		center();
		
		//窗体透明
//		AWTUtilities.setWindowOpacity(frame, 0.5f);
	}
	
	//设定可见区域
	public void setVisibleRegion(int width,int height){
		Shape shape = null;
		shape = new RoundRectangle2D.Double(0, 0, width, height, 6D, 6D);
		AWTUtilities.setWindowShape(frame, shape);
	}	
	
	//设置界面显示位置
	public void center() {
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		frame.setLocation((d.width - frame.getWidth()) / 2, (d.height - frame
				.getHeight()) / 2);
	}	

	public static void main(String[] args) {
		new RoundedRectangle();		
	}

}

 

 

 

  • 大小: 8.1 KB
  • 大小: 2.7 KB
2
5
分享到:
评论

相关推荐

    Java绘制圆角矩形.pdf

    Java中的圆角矩形绘制是GUI编程中常用的一种图形绘制技术,主要应用于界面设计和图形用户界面的美化。本文将详细解析如何使用Java API来绘制圆角矩形,并通过实例代码进行演示。 首先,Java提供了两种方法来绘制...

    swing圆角矩形按钮

    // 绘制圆角矩形 g.drawRoundRect(x, y, width - 1, height - 1, 5, 5); } } ``` 在这个类中,我们实现了`Border`接口的三个方法: - `getBorderInsets`: 返回一个表示边框宽度的`Insets`对象。 - `...

    java swing圆角桌面模板

    2. **Java2D API**:Java2D API 提供了强大的图形绘制功能,包括绘制圆角矩形。`fillRoundRect(x, y, width, height, arcWidth, arcHeight)`方法用于绘制具有指定圆角半径的矩形。 3. **布局管理器**:Swing使用...

    java swing绘制正弦曲线

    在这个场景中,我们讨论的是如何使用Java Swing来绘制正弦曲线,这对于理解和掌握图形绘制以及数学与编程的结合非常有帮助。下面将详细阐述这个话题。 首先,Java Swing中的`javax.swing.JFrame`是所有窗口的基础,...

    java GUI awt 实现鼠标绘制矩形,鼠标拖动矩形,鼠标改变矩形大小功能

    java GUI awt 实现鼠标绘制矩形,鼠标拖动矩形,鼠标改变矩形大小功能. 其它图形的绘制方法参考: https://blog.csdn.net/xietansheng/article/details/55669157

    Java绘图:绘制虚线与实线javalearnsa资料分享

    在AWT中,`Graphics`类用于进行基本的绘制操作,而在Swing中,我们通常使用`Graphics2D`类,它提供了更多高级功能,如抗锯齿、平滑缩放等。 2. `Graphics2D`类 `Graphics2D`类是`Graphics`的子类,扩展了更多的绘图...

    基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面用Swing绘制).zip

    基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面用Swing绘制).zip基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面用Swing绘制).zip基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面...

    java swing JButton 圆角按钮 鼠标监听变色(有注释简单易懂可直接运行)

    java swing JButton 圆角按钮 带变色(有注释,简单易懂适用于初学者 程序可直接运行)

    Java绘制矩形.pdf

    在Java中,我们可以利用其丰富的图形用户界面(GUI)库来创建和绘制各种图形,包括矩形。这篇学习资料主要介绍了如何在Java中使用AWT(Abstract Window Toolkit)库中的Graphics类来绘制矩形。 首先,我们要理解...

    Swing 移动矩形

    "Swing 移动矩形"这个主题主要涉及如何在Swing组件上动态地绘制并移动一个矩形。这篇博客文章可能探讨了如何利用Swing的绘图功能来实现一个交互式的图形应用,让用户能够通过鼠标或键盘操作移动图形。 1. **Swing...

    Swing中依据鼠标拖拽来画出矩形的实现方法

    Swing 中依据鼠标拖拽来画出矩形的实现方法 Swing 是 Java 的一个 GUI 组件库,提供了丰富的图形用户界面组件和工具。在 Swing 中,实现鼠标拖拽来画出矩形的功能需要使用 MouseListener 监听器和 Graphics 绘图类...

    Java 圆角边框实例

    然而,这些方法无法直接创建带有圆角的边框,因此我们需要使用`java.awt.geom.RoundRectangle2D`类来绘制圆角矩形。 3. **绘制圆角边框**: 首先,我们需要创建一个自定义的组件,继承自JPanel,并覆盖`...

    用swing开发的地图导航和圆角Tooltip

    为了实现圆角Tooltip,我们需要覆盖Tooltip的默认绘制逻辑,使用Graphics2D的fillRoundRect方法来绘制带有圆角的矩形,并设置合适的填充颜色和字体样式。 在Swing中,自定义组件的绘制通常在paintComponent方法中...

    java 做的画板画矩形,椭圆,直线

    在Java编程语言中,我们可以利用Java AWT(Abstract Window Toolkit)和Swing库来创建一个基本的画板,实现画矩形、椭圆和直线的功能。这些组件为开发者提供了丰富的图形用户界面(GUI)功能,使得创建具有绘图能力...

    java实现绘制矩形和椭圆并计算面积和周长.doc

    该程序使用Java的图形用户界面(GUI)组件Swing来创建一个交互式界面,允许用户输入长和宽的值,然后绘制出对应的矩形或椭圆,并计算其面积和周长。 Java图形用户界面(GUI)组件Swing Java的Swing库提供了一组...

    捕鱼达人纯java swing

    捕鱼达人纯java swing捕鱼达人纯java swing捕鱼达人纯java swing捕鱼达人纯java swing捕鱼达人纯java swing捕鱼达人纯java swing捕鱼达人纯java swing捕鱼达人纯java swing捕鱼达人纯java swing

    JavaSwing 绘制折现图用到的jar包免费下载,需要自取

    包含 旧版本 gnujaxp.jar jcommon-1.0.13.jar jfreechart-1.0.10-experimental.jar jfreechart-1.0.10-swt.jar swtgraphics2d.jar junit.jar 新版本 jcommon-1.0.23.jar jfreechart-1.0.19.jar ...

    java使用swing绘制国际象棋棋盘

    Java 使用 Swing 绘制国际象棋棋盘 Java 是一种流行的编程语言,Swing 是 Java 的一个图形用户界面(GUI)工具包。使用 Swing 可以创建各种图形化的应用程序,本文将介绍如何使用 Java 和 Swing 绘制一个国际象棋...

    swing表格分页控件封装

    java swing表格分页控件封装,有利于在开发中节约时间

    Java基于socket编写的局域网实时通讯软件源代码+数据库,基于swing绘制用户可视化界面

    项目基于socket实现局域网实时通讯,使用swing绘制用户可视化界面,使用mysql实现用户数据的存储,通过thread多线程实现信息的实时收发,通过io流实现图片的存储。 项目分为客户端、服务端两个入口,客户端可同时...

Global site tag (gtag.js) - Google Analytics