swing自定义border
public class MyBorder extends AbstractBorder {
private static final long serialVersionUID = 1L;
private int xOff;
private int yOff;
private Insets insets;
public MyBorder(int x, int y) {
this.xOff = x;
this.yOff = y;
this.insets = new Insets(0, 0, this.xOff, this.yOff);
}
@Override
public Insets getBorderInsets(Component c) {
return this.insets;
}
@Override
public void paintBorder(Component c, Graphics g, int x, int y, int width,
int height) {
g.translate(x, y);
BufferedImage rightImage = createBufferedImage(this.xOff, height
- this.yOff, Color.red, 0.5f);
BufferedImage bottomImage = createBufferedImage(width - 2 * this.xOff,
height, Color.green, 0.5f);
g.drawImage(rightImage, width - this.xOff, this.yOff, null);
g.drawImage(bottomImage, this.xOff, height - this.yOff, null);
g.translate(-x, -y);
}
private BufferedImage createBufferedImage(int width, int height,
Color color, float alpha) {
BufferedImage bufferedImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_BGR);
Graphics2D g2d = bufferedImage.createGraphics();
bufferedImage = g2d.getDeviceConfiguration().createCompatibleImage(
width, height, Transparency.TRANSLUCENT);
g2d.dispose();
g2d = bufferedImage.createGraphics();
g2d.setColor(color);
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
alpha));
g2d.fillRect(0, 0, width, height);
g2d.dispose();
return bufferedImage;
}
public static void main(String[] args) {
JFrame frame = new JFrame("border");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField text = new JTextField("helloKitty");
text.setPreferredSize(new Dimension(100, 30));
JButton button = new JButton("donald duck");
// text.setBorder(new MyBorder(10, 10));
// text.setForeground(Color.yellow);
frame.getContentPane().setLayout(new BorderLayout());
button.setBorder(new MyBorder(5, 5));
frame.getContentPane().add(text, BorderLayout.CENTER);
frame.getContentPane().add(button, BorderLayout.SOUTH);
frame.setSize(300, 300);
frame.setVisible(true);
}
}
swing自定义border的更多相关文章
- Swing自定义JScrollPane的滚动条设置,重写BasicScrollBarUI方法
Swing自定义JScrollPane的滚动条设置,重写BasicScrollBarUI方法 摘自:https://blog.csdn.net/qq_31635851/article/details/ ...
- Java Swing 自定义Dialog确认对话框
Java Swing 自定义Dialog 需求:当点击JFrame窗口的关闭按钮时,弹框询问是否确定关闭窗口,如果是则关闭程序,否就让弹框消失什么也不做(使用Dialog). 分析:虽然Java提供了 ...
- swing自定义JDialog弹出框
第一次搞swing,自定义JDialog的例子较少,写下来备忘 ,对JDialog中的文本框进行了验证 package com.chauvet; import java.awt.Component; ...
- 自定义border 为 dashed 时的虚线间距
li{ width: 100%; height: 3px; background-image: linear-gradient(to right, #009a61 0%, #009a61 50%, t ...
- 百度地图BMapLib.InfoBox 手机兼容源码修改
InfoBox.prototype.initialize = function (map) { var me = this; var div = this._div = baidu.dom.creat ...
- Java登录界面的实现(注册、登录、背景图片)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.java * 作者:常轩 * 微信公众号:Worldh ...
- Swing应用开发实战系列之一:自定义JdbcTemplate
笔者本人真正意义上接触编程开发是在2004年,最早用的就是VB,然后是Delphi等,后来转到.Net,中间断断续续还用过PowerBuilder等,无一例外,所研发设计的项目或系统都是WinForm ...
- Swing中使用UIManager批量自定义单一JComponent组件默认属性
最近在研究Swing,被它的复杂性气的快吐血了,刚才本打算把JFrame的背景色换成白底,结果发现事情没想象中那么顺利,调用setBackground完全没有效果,猛然醒悟到JPanel本身是带不透明 ...
- Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...
随机推荐
- javascript控件(二):一个好用的表格(分页实例)
一.官网 https://datatables.net/ 二.引用 <script src="bower_components/datatables.net/js/jquery.dat ...
- 增量式pid和位置式PID参数整定过程对比
//增量式PID float IncPIDCalc(PID_Typedef* PIDx,float SetValue,float MeaValue)//err»ý·Ö·ÖÀë³£Êý { PIDx-& ...
- appium通过同级别(兄弟关系)元素找到元素
在做appium测试用例的时候,要获取金额值,用uiautomatorviewer查看该元素,该元素没有特别明显的个性特点,唯一有特点的定位是有content-desc值,但是该值是变动的,所以无法通 ...
- scrapy定时执行抓取任务
在ubuntu环境下,使用scrapy定时执行抓取任务,由于scrapy本身没有提供定时执行的功能,所以采用了crontab的方式进行定时执行: 首先编写要执行的命令脚本cron.sh #! /bin ...
- ssh 反向代理和正向代理的文章
搜索原因是,我希望访问家里内网的机器 技术要点: ssh 反向代理,正向代理 隧道 文章摘自: https://my.oschina.net/leejun2005/blog/94401 https:/ ...
- linux经常使用命令-帮助命令-授之以渔
原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc 我的虚拟机系统是CentOS.版本号较老,谅解 一.为什么要学习帮助命令? 授人以鱼不如授人以渔.学会了 ...
- rpm_快速安装saltstake
安装EPEL源:(mast和minion都需要安装) [root@c02 src]# wget http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-re ...
- 动态SQL中 实现条件参数 varchar类型的参数名称 以及模糊查询实现
set @strSQL='select * from testtable AS P WHERE P.Type='+@PType+' and P.PName ='''+@PName+''' and P. ...
- Anaconda的使用和包的更新;conda 创建虚拟环境
安装: 官网下好后,直接 sh * 会提示安装路径,选择No的话重新填入安装的路径就可以了: 添加到环境变量: echo 'export PATH="~/anaconda2/bin/$PAT ...
- 【MySQL】MySQL层级数据的递归遍历
层级的业务数据在系统中很常见,如组织机构.商品品类等. 如果要获取层级数据的全路径,除了缓存起来,就是递归访问的方式了: 将层级数据缓存在redis中,用redis递归获取层级结构.此方法效率高. 在 ...