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的更多相关文章

  1. Swing自定义JScrollPane的滚动条设置,重写BasicScrollBarUI方法

    Swing自定义JScrollPane的滚动条设置,重写BasicScrollBarUI方法 摘自:https://blog.csdn.net/qq_31635851/article/details/ ...

  2. Java Swing 自定义Dialog确认对话框

    Java Swing 自定义Dialog 需求:当点击JFrame窗口的关闭按钮时,弹框询问是否确定关闭窗口,如果是则关闭程序,否就让弹框消失什么也不做(使用Dialog). 分析:虽然Java提供了 ...

  3. swing自定义JDialog弹出框

    第一次搞swing,自定义JDialog的例子较少,写下来备忘 ,对JDialog中的文本框进行了验证 package com.chauvet; import java.awt.Component; ...

  4. 自定义border 为 dashed 时的虚线间距

    li{ width: 100%; height: 3px; background-image: linear-gradient(to right, #009a61 0%, #009a61 50%, t ...

  5. 百度地图BMapLib.InfoBox 手机兼容源码修改

    InfoBox.prototype.initialize = function (map) { var me = this; var div = this._div = baidu.dom.creat ...

  6. Java登录界面的实现(注册、登录、背景图片)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.java * 作者:常轩 * 微信公众号:Worldh ...

  7. Swing应用开发实战系列之一:自定义JdbcTemplate

    笔者本人真正意义上接触编程开发是在2004年,最早用的就是VB,然后是Delphi等,后来转到.Net,中间断断续续还用过PowerBuilder等,无一例外,所研发设计的项目或系统都是WinForm ...

  8. Swing中使用UIManager批量自定义单一JComponent组件默认属性

    最近在研究Swing,被它的复杂性气的快吐血了,刚才本打算把JFrame的背景色换成白底,结果发现事情没想象中那么顺利,调用setBackground完全没有效果,猛然醒悟到JPanel本身是带不透明 ...

  9. Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

    本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...

随机推荐

  1. RDLC 设置表的重复标题行(在每页中显示标题行)

    在Tablix 属性对话框中勾选“在每一页上重复标题行”及“滚动时保持标题可见”结果没有用. 如果您使用的是一个“表”式布局,有一个简单的方法,可以尝试以下四个步骤: 1.在分组窗格中,单击窗格上的小 ...

  2. 温故而知新 Ajax 的新坑 dataType: 'json'

    为了方便实验,我随便捏造了一个json数据,然后放在php中输出. 请求明明是200,json数据也正确,但ajax就是不执行success回调? 原因是 dataType: 'json', 导致的. ...

  3. Vue 中组件概念

    1 为了能在模板中使用,组件必须先注册以便 Vue 能够识别.这里有两种组件的注册类型:全局注册和局部注册. 1.1 全局注册是通过Vue.component 来向Vue注册,例子 Vue.compo ...

  4. JSON.toJSONString中序列化空字符串遇到的坑

    前言 最近在做系统Bug修复时遇到了一个问题,调用其他服务时传递的参数和自己预先的不一致,例如Map中有10条记录,然后使用JSON.toJSONString 包装后进行网络传递,但是通过调试发现接收 ...

  5. 关于haproxy多域名证书的配置

    frontend main bind *: bind *: ssl crt /etc/haproxy/kong.com.pem crt /etc/haproxy/51yijI.com.pem no-s ...

  6. 关于 sql server 数据库权限乱七八糟的一些东西

    研究权限这些东西主要是因为今天正好在折腾数据库备份相关的东西,备份好说,备份完了就完了. 但是恢复备份的时候,需要先让数据库脱机,然后恢复,然后再联机,嗯,问题就出在联机上了. 根据 MSDN 的说法 ...

  7. Android 7.0 Dialog 无法显示的问题

    app 在 Android 7.0 上登录的时候, Dialog 不显示了,但是半透明背景显示 经过搜索和对比,发现出现该问题是因为重写了 getResources() 方法造成的 .重写该方法是为了 ...

  8. ITOO高校云平台V3.1--项目总结(二)

    自身责任要明白 心态要明白 布置任务要有反馈 总结 今天下午.举办了一场ITOO高校云平台3.1总结大会,针对3.1开发的过程中统计上来的问题进行讨论. 通过讨论统计上来的问题,映射到自身,看看自己还 ...

  9. 每日英语:The Benefits of a Better Men's T-Shirt

    "I WEAR A T-shirt and jeans every single day," said Erik Schnakenberg, 30, co-founder of t ...

  10. 【转】(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout

    原创至上,移步请戳:(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout 2. BasicLayout 在这一节我们会看到UI元素相对于画布的位置是怎样的. ...