JTable学习总结之——如何设置表格透明篇
来源:互联网 发布:乐视维修mac码 编辑:程序博客网 时间:2024/06/05 14:07
最近在自己做一个项目,因为涉及到的表格比较多,所以使用JTable也稍微频繁,而自然问题也就多了起来。之前有一篇文章是关于返回-1的问题,今天主要将一些对JTable的基本设置。
第一:透明。
上面是我自己做的一个表格,目的就是实现表格透明化。从中可以看出来其中只是在表格的数据意外的地方透明了。当然这一步想要实现很简单将对应的JScrollPane设置一下如:
JScrollPane jsp = new JScrollPane();jsp.setOpaque(false);jsp.getViewport().setOpaque(false);第一次用的时候也不知道为什么需要设置两个,但是后来查阅JDK api后发现这跟JScrollPane的实现有关。JSCrollPane有两个面板层,一个是他本身,而另外一个则是他的viewport(视口)。说到viewport这里也讨论一下为什么java中会需要这个viewport吧。假设我们现在在做一个根据条件过滤的查询页面,根据这种需求,我们肯定需要对表格不断的修改然后重新显示,如果只是单元格内容变化,行列数不变,我们可以用JTable中的TableModel来实现。但是如果行列数都变了,甚至显示方式也变了。这该如何?每次都把JScrollPane删掉再重新添加?这种方式更复杂一点不说,如果下层面板的Layout不合适还会引发其他一系列的问题。比如说顺序,甚至重新修改JScrollPane的大小等,太麻烦,而在使用viewport的时候则可以避免这些问题,直接setViewport一下,就更新了。
题外话说完,下一个就是表格中数据的透明了。要实现表格中的透明还需要设置两个部分,即:JTable和cell。将这两个部分都设置成透明之后才能实现整个透明。先给出一个透明的Demo好了。
import java.awt.Color;import javax.swing.*;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.TableCellRenderer;public class Demo{public static void main(String[] args){JFrame jf = new JFrame("Demo");String data[][] = new String[][]{{"1","2"},{"12","22"}};String column[] = new String[]{"A","B"};JTable table = new JTable(data,column);JScrollPane jsp = new JScrollPane(table);DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();renderer.setOpaque(false);//render单元格的属性//遍历表格中所有列,将其渲染器设置为rendererfor(int i = 0 ; i < column.length ; i ++){table.getColumn(column[i]).setCellRenderer(renderer);}table.setOpaque(false);//将table设置为透明jsp.setOpaque(false);//将jsp根面板设置为透明jsp.getViewport().setOpaque(false);//将jsp的viewport设置为透明jf.add(jsp);jf.getContentPane().setBackground(Color.blue);//将jf(窗体)的面板设置为蓝色。以便区分是否表格为透明jf.setSize(400, 400);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setVisible(true);}}附上Demo的实现效果截图。
到这里算是基本实现了表格的透明了。
0 0
- JTable学习总结之——如何设置表格透明篇
- JTable 如何设置表格的列宽
- Swing_表格(JTable)学习总结
- Swing之JTable篇设置表格选中行的前景色和背景色
- Swing之JTable篇设置表格单元格的内容对齐方式
- swing jtable表格背景设置
- 设置JFrame的背景图片,实现Jtable 透明
- 学习设置Jtable
- Swing之JTable篇采用模板形式控制表格
- JTable 学习总结
- 14.59 设置表格焦点 JTable.setFocusable
- JTable 表格设置某一单元格的颜色
- 如何设置JTable不可编辑
- java之显示JTable表格数据
- swing JTable学习(五)—中给table中的cell加tips 以及用AbstractTableModel创建表格
- 透明字体如何设置?
- Swing超基础学习总结——6、JTable和JScrollPane
- swing JTable学习(四)—setTooltips换行
- Linux epoll模型
- Openssl command到API转换--password和key、iv转化以及openssl进行gdb调试
- 一些常用设计模式的应用场景
- 创建Ubuntu用户以及让新用户增加sudo权限
- jsp脚本提取struts2中action的属性值
- JTable学习总结之——如何设置表格透明篇
- 鸟哥私房菜之认识 bash shell - 2
- day-07
- Starling TextField
- 黑苹果的碎玉零玑
- 对一切正整数n都成立的最小正整数a的值
- iOS之message sent to deallocated instance与EXC_BAD_ACCESS类错误
- cocos2d-x 过度动画
- ajax(Asynchronous JavaScript And XML)