java入门 常见问题0007:如何让JTextField文本框可以设置背景图像
java编程入门 常见问题0007:如何让JTextField文本框可以设置背景图像
代码参考网友的代码,地址已经找不到了,对不住那位网友了
有的同学在做GUI开发时,希望文本框有背景图像,但是JTextField没有设置图像方法。那么怎么办呢?
一言不合就定义子类,定义JTextFiel使得它在构造的时候能指定图像(当然如果需要,也可以增加SetImage方法)
效果如下:
我们,来看看代码把:
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.TexturePaint;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;//定义文本框子类,使得能绘制背景图像
class TextFieldWithImage extends JTextField {BufferedImage img;TexturePaint texture;public TextFieldWithImage(File file) throws IOException {super();img = ImageIO.read(file);Rectangle rect = new Rectangle(0, 0, img.getWidth(null), img.getHeight(null));texture = new TexturePaint(img, rect);setOpaque(false);}@Override// 重写父类方法,参考JDK可知,当Swing组件的paint方法被调用时,paintComponent、paintBorder、// paintChildren这三个方法也会被按顺序调用,public void paintComponent(Graphics g) {Graphics2D g2 = (Graphics2D) g;g2.setPaint(texture);g.fillRect(0, 0, getWidth(), getHeight());super.paintComponent(g);}
}//使用自动以按钮类
public class BackGroundImage extends JFrame {private JPanel contentPane;ImageIcon imageIcon = new ImageIcon("image\\001.png");JLabel background = new JLabel(imageIcon);JTextField foregroundtxt = new JTextField();TextFieldWithImage aaa;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {BackGroundImage frame = new BackGroundImage();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public BackGroundImage() {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));contentPane.setLayout(null);setContentPane(contentPane);getLayeredPane().setLayout(null);try {aaa = new TextFieldWithImage(new File("image\\001.png"));} catch (Exception e) {// TODO: handle exception}aaa.setBounds(20, 20, 300, 100);contentPane.add(aaa); // 将文本框添加到前景aaa.setFont(new Font("宋体", Font.BOLD, 20));aaa.setForeground(Color.red);}
}
如果希望这种效果的,请参考https://blog.csdn.net/hiyohu/article/details/13512117,方法同上,只是让文本框设置的边缘宽度margin,将图片插入到marge中,文本从边缘宽度后开始
java入门 常见问题0007:如何让JTextField文本框可以设置背景图像相关推荐
- 在html里文本框怎么设置背景颜色,css文本框颜色怎么设置
css文本框颜色的设置方法:1.使用color属性设置文本框内文字颜色:2.使用background-color属性设置文本框的背景颜色:3.使用border-color属性设置文本框的边框颜色. 本 ...
- java中的文本框_java里的JTextField文本框怎么设置大小?
代码如下: 1.//核心代码第一部分, 设置文本框,密码框长宽: 2.wbk = new JTextField(8);//在这个窗口大小里,设置长度为8,比较合适: 3.mmk = new JPass ...
- java 字符间距_java中,label或者文本框怎么设置字符之间的间距
继承label或者文本框,写一个新类,添加一个textValue属性,再添加setter和getter方法就可以了,不过每次设值的时候就得设值两次了,而且取值只能从textValue获取值.publi ...
- Java——JTextField文本框
┏(ω)=☞ 本专栏的目录(为您提供更好的查询方式)(点这里说不定有你想要的) 本文章未出现的变量可去我同栏目找对应的变量,代码复制过去注意导包 设置文本框大小以及位置 将文本框加入到JFrame窗口 ...
- Android基础入门教程——2.3.1 TextView(文本框)详解
Android基础入门教程--2.3.1 TextView(文本框)详解 标签(空格分隔): Android基础入门教程 本节引言: 学习完Android中的六大布局,从本节开始我们来一个个讲解And ...
- P27 JTextField文本框
P27 JTextField文本框 1.概述 2.实例代码 3.效果展示 系统:Win10 Java:1.8.0_333 IDEA:2020.3.4 Gitee:https://gitee.com/l ...
- html 文本框css设置边框圆角
html 文本框css设置边框圆角如下图: css代码如下:input{border:1px solid black;width:295px;height:40px;border-radius:25p ...
- php怎么把文本框的边框去掉,如何在文本框中设置清除按钮
有时我们会看到在文本框中的右边会有一个圆圈里面有个×,这其实就是清除按钮,那么如何在文本框中来实现这个清除按钮呢?接下来的这篇文章就来给大家介绍关于在文本框中设置清除按钮的方法. 我们先来看一下设置清 ...
- java学习(75):GUL文本框和标签
//jPanel面板 文本框和标签 //面向对象思想,面板,窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test ...
最新文章
- php基础:switch cass控制结构 代替if
- Uva592 Island of Logic
- 使用注解打造自己的IOC框架
- Spring Cloud Alibaba - 20 Nacos StandAlone模式下的数据存储(Derby)及新增登录用户
- 《云栖精选》第8期:科技,改变世界
- mongodb按照时间分组统计
- 【ES6入门04】:数值扩展
- Linux查看、运行和杀死java进程
- 【方法】如何限定IP访问Oracle数据库
- python学习之re库
- 毕业设计之 ---- 基于大数据挖掘分析的大众点评评论文本挖掘
- 视觉slam十四讲 第二版 pdf_第二版SLAM上帝视角,它来啦!!!
- android 视频播放器框架 [饺子播放器](https://github.com/Jzvd/JiaoZiVideoPlayer) 源码解析与评估
- 格雷码和二进制相互转换
- Jenkins怎么发邮件,自动化大老手把手教你
- Google Maps的故事,你知道多少?
- 大数据在互联网行业的应用
- 荣盛发展,或正在步华夏幸福后尘
- JAVA 的命令行运行
- 记一次尴尬的调试错误:在形参表中不匹配