失眠并不是一无是处,至少我认真完成了我的工作,而且还收获了很多。
对于一般的swing组件,设置透明就只用一句代码:
nameOfComponent.setOpaque(false);
但这一句代码不是万能的 ,当遇到JButton、JScrollPane、JTable等等组件的时候,这一句代码是完全不够用的,下面来总结一下吧~
JButton,按钮组件,用下面这句代码将其设置为透明:
jbt_login.setContentAreaFilled(false);
对比效果如图:
同时我们也可用自己定义的图片替换按钮(实际上将图片添加到按钮上),使我们的界面看起来更漂亮,通过以下代码实现:
jbt_login = new JButton("登 录");//实例化一个JButton对象 ImageIcon icon = new ImageIcon("images/loginBackground.jpg");//实例化一个图片对象 jbt_login.setIcon(icon); jbt_login.setContentAreaFilled(false);
JScrollPane视图,相对于JButton复杂一点,不过也就只多了一行代码:
name.setOpaque(false); name.getViewport().setOpaque(false);
不过值得注意的是,这两行代码只是让JScrollPane视图透明,在应用中添加在此视图上的其他组件也要都要setOpaque(false)。
JTable,队友说:我再也不想理JTable了,它太逗了。然后我笑了,不过现在发现JTable确实很逗,设置透明最为复杂。
JTable实例化的一个表分为表头和表体(我姑且这么叫),所以在设置透明的时候,也得分为两部分实现:
表体:
/* * * 将表格设置为透明,表格同样包括表格本身和其中的内容项 * 仅仅将表格本身设置为透明也没有用,应该将其中的内容项也设置为透明 * 内容项的设置是通过设置渲染器的透明来实现 */ table.setOpaque(false); DefaultTableCellRenderer render = new DefaultTableCellRenderer(); render.setOpaque(false);//将渲染器设置为透明 //将这个渲染器设置到fileTable里。 //这个设置在没有另外专门对column设置的情况下有效 //若你对某个column特殊指定了渲染器,则对于这个column,它将不调用render渲染器 //因此为了保证透明,如果你对column额外指定了渲染器,那么在额外的渲染器里也应该设置透明 table.setDefaultRenderer(Object.class, render);
注:在设置一个表透明的时候,一定的再设置之前有这个表,否则你动作的对象都没有,如何做这个动作呢?
表头:
//头部实际上也是一个JTABLE,只有一行而已。 JTableHeader header = fileTable.getTableHeader();//获取头部 header.setOpaque(false);//设置头部为透明 header.getTable().setOpaque(false);//设置头部里面的表格透明 /* * * 头部的表格也像前面的表格设置一样,还需要将里面的单元项设置为透明 * 因此同样需要对头部单元项进行透明度设置,这里还是用渲染器。 */ header.setDefaultRenderer(render); TableCellRenderer headerRenderer = header.getDefaultRenderer(); if (headerRenderer instanceof JComponent) { ((JComponent) headerRenderer).setOpaque(false); }
注:表头设置透明以后,表头部分的网格线会丢失,如果想将其补全的话可以用自己画。方法此处不提供。
下图为设置各个组件透明后的效果(由于效果,未设置表头透明):
就这么多吧,电脑慢得啊。。。电脑需要休息,人更需要休息,补觉去了~
相关推荐
java拖拽透明组件源码 swing 中拖拽
JAVA组件小全 Swing组件一览表 Java中的常用方法
Java SE程序 基本组件的用法Java SE程序 基本组件的用法Java SE程序 基本组件的用法Java SE程序 基本组件的用法Java SE程序 基本组件的用法Java SE程序 基本组件的用法Java SE程序 基本组件的用法Java SE程序 基本...
在Java中使用VC++组件
高度封装的java组件,加速开发上传下载。
Java无组件上传 Java无组件上传 Java无组件上传 Java无组件上传 Java无组件上传
swing中最常用的9种组件,使用方法 看了就会用
Java日期选择器组件应用实例 源码,定义了界面组件,有父窗口(Farm),不带日期参数的 DateChooser,定义了月历表格配色和滚动条颜色,本Java日历选择器源码文件功能说明: [DateChooser.java] Java 日期选择控件...
java类的开发组件,绝对好用java类的开发组件,绝对好用
非常好用的java打印组件非常好用的java打印组件非常好用的java打印组件
JAVA中JTable组件详解实例 实例讲解比较详细有需要的可以下载!
java格式化sql组件 从hibernate中提取出来的
java版 图片透明设置功能代码,运行正常,是图片处理的方便工具类
java邮件发送组件,邮件群发组件java邮件发送组件,邮件群发组件java邮件发送组件,邮件群发组件java邮件发送组件,邮件群发组件java邮件发送组件,邮件群发组件
基于java的开发源码-Facebook API 的Java 封装请求处理组件 RestFB.zip 基于java的开发源码-Facebook API 的Java 封装请求处理组件 RestFB.zip 基于java的开发源码-Facebook API 的Java 封装请求处理组件 RestFB.zip...
java wrapper 分布式应用组件、可以把java程序以服务的形式分布于不同的服务器
Java HelpGUI 帮助视图组件,一个“帮助视图“菜单生成组件库,可帮助Java程序员快速生成帮助视图类功能。
javaSwing常用的组件,包括树的应用以及下拉列表
java调用com+组件,方便快捷,而且非常简单
Java简易日志组件,附配置和示例Demo