先上图吧
可以清楚地看到矩形边角是没有背影的。
如果这是你想要的结果,那请接着往下阅读其实现过程
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
分享到:
相关推荐
swing默认按钮样式不敢恭维,好在扩展性不错。
一个用swing绘制sin曲线的小程序 供初学者借鉴借鉴
用java自带的抗锯齿画圆角矩形,效果比不开好很多! 主要代码: @Override public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints....
基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面用Swing绘制).zip基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面用Swing绘制).zip基于JAVA模拟操作系统作业调度算法(源码+项目说明)(界面...
java GUI awt 实现鼠标绘制矩形,鼠标拖动矩形,鼠标改变矩形大小功能. 其它图形的绘制方法参考: https://blog.csdn.net/xietansheng/article/details/55669157
NULL 博文链接:https://bin563713270.iteye.com/blog/1851189
java swing JButton 圆角按钮 带变色(有注释,简单易懂适用于初学者 程序可直接运行)
捕鱼达人纯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 ...
主要介绍了Swing中依据鼠标拖拽来画出矩形的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Java swing小游戏,纯练手Java swing小游戏,纯练手Java swing小游戏,纯练手 Java swing小游戏,纯练手Java swing小游戏,纯练手Java swing小游戏,纯练手 Java swing小游戏,纯练手Java swing小游戏,纯练手Java ...
startUML、java、swing startUML、java、swing startUML、java、swing
主要为大家详细介绍了java使用swing绘制国际象棋棋盘,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这是一个纯swing开发的界面,内部采用了观察言观察者模式,但观察者模式在此用得不很合适,有一个小地方在这方面设计上并不是理想的效果.建议采用命令模式重新设计为佳.
纯swing编写--no3.keeper小软件
主要为大家详细介绍了使用Swing绘制动态时钟,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
采用java Swing实现的画图应用,包含以下功能: 随意绘画 形状选择:直线,矩形,圆角矩形,圆,椭圆 颜色选择:画笔颜色,填充颜色 可以调整画笔粗细以及选择橡皮
贪吃虫游戏应该是Java初学者必做的案例,本游戏用只用了绘图功能,没有引用任何外部资源,具有简单交互功能(UI美化真的很费时间,做的有点丑,哈哈),纯手工打造,仅供初学者研究!本人在编程方面知识积累很有限,...