先上图吧
可以清楚地看到矩形边角是没有背影的。
如果这是你想要的结果,那请接着往下阅读其实现过程
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
分享到:
相关推荐
Java中的圆角矩形绘制是GUI编程中常用的一种图形绘制技术,主要应用于界面设计和图形用户界面的美化。本文将详细解析如何使用Java API来绘制圆角矩形,并通过实例代码进行演示。 首先,Java提供了两种方法来绘制...
// 绘制圆角矩形 g.drawRoundRect(x, y, width - 1, height - 1, 5, 5); } } ``` 在这个类中,我们实现了`Border`接口的三个方法: - `getBorderInsets`: 返回一个表示边框宽度的`Insets`对象。 - `...
2. **Java2D API**:Java2D API 提供了强大的图形绘制功能,包括绘制圆角矩形。`fillRoundRect(x, y, width, height, arcWidth, arcHeight)`方法用于绘制具有指定圆角半径的矩形。 3. **布局管理器**:Swing使用...
在这个场景中,我们讨论的是如何使用Java Swing来绘制正弦曲线,这对于理解和掌握图形绘制以及数学与编程的结合非常有帮助。下面将详细阐述这个话题。 首先,Java Swing中的`javax.swing.JFrame`是所有窗口的基础,...
java GUI awt 实现鼠标绘制矩形,鼠标拖动矩形,鼠标改变矩形大小功能. 其它图形的绘制方法参考: https://blog.csdn.net/xietansheng/article/details/55669157
在AWT中,`Graphics`类用于进行基本的绘制操作,而在Swing中,我们通常使用`Graphics2D`类,它提供了更多高级功能,如抗锯齿、平滑缩放等。 2. `Graphics2D`类 `Graphics2D`类是`Graphics`的子类,扩展了更多的绘图...
基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面用Swing绘制).zip基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面用Swing绘制).zip基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面...
java swing JButton 圆角按钮 带变色(有注释,简单易懂适用于初学者 程序可直接运行)
在Java中,我们可以利用其丰富的图形用户界面(GUI)库来创建和绘制各种图形,包括矩形。这篇学习资料主要介绍了如何在Java中使用AWT(Abstract Window Toolkit)库中的Graphics类来绘制矩形。 首先,我们要理解...
"Swing 移动矩形"这个主题主要涉及如何在Swing组件上动态地绘制并移动一个矩形。这篇博客文章可能探讨了如何利用Swing的绘图功能来实现一个交互式的图形应用,让用户能够通过鼠标或键盘操作移动图形。 1. **Swing...
Swing 中依据鼠标拖拽来画出矩形的实现方法 Swing 是 Java 的一个 GUI 组件库,提供了丰富的图形用户界面组件和工具。在 Swing 中,实现鼠标拖拽来画出矩形的功能需要使用 MouseListener 监听器和 Graphics 绘图类...
然而,这些方法无法直接创建带有圆角的边框,因此我们需要使用`java.awt.geom.RoundRectangle2D`类来绘制圆角矩形。 3. **绘制圆角边框**: 首先,我们需要创建一个自定义的组件,继承自JPanel,并覆盖`...
为了实现圆角Tooltip,我们需要覆盖Tooltip的默认绘制逻辑,使用Graphics2D的fillRoundRect方法来绘制带有圆角的矩形,并设置合适的填充颜色和字体样式。 在Swing中,自定义组件的绘制通常在paintComponent方法中...
在Java编程语言中,我们可以利用Java AWT(Abstract Window Toolkit)和Swing库来创建一个基本的画板,实现画矩形、椭圆和直线的功能。这些组件为开发者提供了丰富的图形用户界面(GUI)功能,使得创建具有绘图能力...
该程序使用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
包含 旧版本 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 的一个图形用户界面(GUI)工具包。使用 Swing 可以创建各种图形化的应用程序,本文将介绍如何使用 Java 和 Swing 绘制一个国际象棋...
java swing表格分页控件封装,有利于在开发中节约时间
项目基于socket实现局域网实时通讯,使用swing绘制用户可视化界面,使用mysql实现用户数据的存储,通过thread多线程实现信息的实时收发,通过io流实现图片的存储。 项目分为客户端、服务端两个入口,客户端可同时...