方法1:定义Border,然后给JTextField设置即可

摘自并整理:https://blog.csdn.net/u012093968/article/details/39316679

最好添加这句话g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)告诉绘制API我们需要平滑一点,

否则绘制出来会有很多锯齿哟。

 package com.xxx.xxx.xxx;

 import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.RenderingHints; import javax.swing.border.Border; /**
 * Swing
 * 设置圆角边框(可以自定义边框的颜色)
 * 可以为button,文本框等人以组件添加边框
 * 使用方法:
 * JButton close = new JButton(" 关 闭 ");
 * close.setOpaque(false);// 设置原来按钮背景透明
 * close.setBorder(new RoundBorder());黑色的圆角边框
 * close.setBorder(new RoundBorder(Color.RED)); 红色的圆角边框
 * 
 * @author Monsoons
 */ public class RoundBorder implements Border {
private Color color; private int arcH = 15;
private int arcW = 15; public RoundBorder() {
this(Color.BLACK);
// 如果实例化时,没有传值
// 默认是黑色边框
} public RoundBorder(Color color) {
this.color = color;
} public Insets getBorderInsets(Component c) { // top:可以调节光标与边枉的距离, 间接影响高度
// left:可以调节光标与边枉的距离
// bottom:可以调节光标与边枉的距离, 间接影响高度
// right:可以调节光标与边枉的距离
return new Insets(10, 15, 10, 15);
} public boolean isBorderOpaque() {
return false;
} // 实现Border(父类)方法
@Override
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
// g.setColor(color);
// g.drawRoundRect(0, 0, c.getWidth() - 1, c.getHeight() - 1, arcH, arcW); Graphics2D g2d = (Graphics2D) g.create(); g2d.setColor(color);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawRoundRect(0, 0, c.getWidth() - 1, c.getHeight() - 1, arcH, arcW); g2d.dispose();
}
}

方法二: 重写JTextField,然后覆盖paintBorder方法

摘自:https://www.aliyun.com/jiaocheng/543166.html?spm=5176.100033.2.10.SPifa6

 /*Swing的圆角输入框
发布时间:2018-03-01 来源:网络 上传者:用户
关键字: 圆角 输入 Swing
发表文章
摘要:最近看了flyPig前辈的圆角高亮Buttonhttp://flypig.iteye.com/blog/389253,依葫芦画瓢,自己做了一个简单的圆角输入框。importjava.awt.Color;importjava.awt.FlowLayout;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Insets;importjava.awt.RenderingHints;importjava. 最近看了flyPig前辈的圆角高亮Buttonhttp://flypig.iteye.com/blog/389253,依葫芦画瓢,自己做了一个简单的圆角输入框。*/ import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.RoundRectangle2D;
import javax.swing.JFrame;
import javax.swing.JTextField; public class MyTextField extends JTextField {
private static final long serialVersionUID = -1946802815417758252L; public MyTextField(int columns) {
super(columns);
//
setMargin(new Insets(0, 5, 0, 5));
} @Override
protected void paintBorder(Graphics g) {
int h = getHeight();// 从JComponent类获取高宽
int w = getWidth();
Graphics2D g2d = (Graphics2D) g.create();
Shape shape = g2d.getClip();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setClip(shape);
g2d.drawRoundRect(0, 0, w - 2, h - 2, h, h);
g2d.dispose();
super.paintBorder(g2d);
} public static void main(String[] args) {
JFrame jf = new JFrame();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(300, 200);
jf.setLayout(new FlowLayout());
MyTextField text = new MyTextField(20);
jf.add(text);
jf.setVisible(true);
}
}

Swingr的JTextField、JPasswordField设置圆角输入框的更多相关文章

  1. iOS之分别使用代码和storyboard、xib为控件设置圆角(以按钮为例)

    首先我们看一下代码是如何给按钮设置圆角的: 我们再来看看如何在storyboard或xib中给按钮设置圆角: 1.在storyboard或xib中添加按钮后,设置标题和背景色,做好约束: 2.点击 S ...

  2. iOS UIView设置圆角

    UIView设置圆角 1.比较简单的情况,UIView四个角都是圆角: UIView *aView = [[UIView alloc] init]; aView.frame = CGRectMake( ...

  3. iOS设置圆角矩形和阴影效果

    1.设置圆角矩形 //设置dropview属性 _dropView.backgroundColor=[[UIColor whiteColor] colorWithAlphaComponent:0.8] ...

  4. iOS之用xib给控件设置圆角、边框效果

    xib中为各种控件设置圆角 通过代码的方式设置 @interface ViewController () @property (weak, nonatomic) IBOutlet UIView *my ...

  5. Java 图片设置圆角(设置边框,旁白)

    /** * 图片设置圆角 * @param srcImage * @param radius * @param border * @param padding * @return * @throws ...

  6. iOS图片设置圆角

    一般我们在iOS开发的过程中设置圆角都是如下这样设置的. imageView.clipsToBounds = YES; [imageView.layer setCornerRadius:]; 这样设置 ...

  7. iOS设置圆角的常用方法

    //第一种方法:最常用的方法,但是性能最差 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100 ...

  8. iOS设置圆角的方法及指定圆角的位置

    在iOS开发中,我们经常会遇到设置圆角的问题, 以下是几种设置圆角的方法: 第一种方法: 通过设置layer的属性 代码: UIImageView *imageView = [[UIImageView ...

  9. WPF 圆角输入框

    今天打算来做一个圆角的输入框 默认输入框: 这个输入框不好看,并且在XP 跟 WIN 7  WIN10 效果 都不太一样 我们今天不用模板的方式,而是 最简单的方式 来实现 圆角 输入框: ----- ...

随机推荐

  1. PHP文件管理

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 清理svn.bat

     @echo on  color 2f  mode con: cols=80 lines=25  @REM  @echo 正在清理SVN文件,请稍候......  @rem 循环删除当前目录及子目录下 ...

  3. Weblogic-unable to get file lock, will retry …问题解决

    weblogic部署应用出现如下报错: <2017-8-15 下午05时08分44秒 CST> <Info> <Management> <BEA-141281 ...

  4. Python 函数之装饰器

    1.函数 #### 第一波 #### def foo(): print 'foo' foo #表示是函数 foo() #表示执行foo函数 #### 第二波 #### def foo(): print ...

  5. 运行flask程序

    Command Line Interface Installing Flask installs the flask script, a Click command line interface, i ...

  6. c++11之一: 基于范围的for循环

    #include <iostream> using namespace std; int main(){ ]{,,,,}; for (int& e: ary) e *= ; for ...

  7. MySQL 使用pt-table-checksum 检查主从数据一致性 (实例转)

    1.基本环境: Mysql版本:5.6.12-log Percona-toolkit:2.2.18 Linux:centos6.5 2.安装 源码安装: # 一些依赖包 yum install per ...

  8. ODP.NET OracleBulkCopy

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using Oracle.DataA ...

  9. Azure通过Vnet Peering和用户自定义路由(UDR)实现hub-spoken连接

    Azure的Vnet Peering可以把Azure中不同的Vnet连接起来的技术.底层是通过对NVGRE的租户标签进行修改,实现了不同租户间的互通.这种技术非常类似传统网络中MPLS/VPN不同租户 ...

  10. 开发环境入门 linux基础 (部分)while for 函数 计划任务

    while循环 while do 动作 done 需要无限循环时我们会选择while : echo -e 格式处理,将\n的意义不变. exit 指退出执行程序 break 指跳出本层循环 conti ...