Java Swing JTable 表格【9:表格使用渲染器DefaultTableCellRenderer】
来源:互联网 发布:linux如何更改用户权限 编辑:程序博客网 时间:2024/05/18 03:03
渲染器
渲染器用来绘制表格中的单元格,渲染器也可以从表格中提取每个单元格的方法,所以,渲染器也被称为绘制器,其实,当一个表格能够在容器中显示出来,是依靠系统默认的渲染器来绘制的,而且是一个单元格,一个单元格绘制的,所以哥它可以单独的将某个单元格提取出来,也可以针对表格中任意的单元格进行编辑,这也是渲染器的最大用处之一。
下面通过例子来演示渲染器来渲染表格中不同行的颜色。
package com.acconsys.swing.chapter14;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.DefaultTableModel;/** * 展示使用渲染器让表格中偶数行的颜色为蓝色,奇数行不变 * * @author Administrator * */public class Test11 extends JFrame { Object[][] p = { { "王鹏", "91", "100", "191" }, { "朱学莲", "82", "100", "182" }, { "梅婷", "47", "100", "147" }, { "赵龙", "61", "100", "161" }, { "李兵", "90", "100", "190" }, }; String[] n = { "姓名", "语文", "数学", "总分" }; // 界面组件---------------- // 中底层滚动面板 private JScrollPane scroPanel = new JScrollPane(); // 列表默认TableModel private DefaultTableModel model; private JTable table; public Test11() { config(); addListener(); confcolor(); } /** * 方法:界面构建 */ private void config() { table = new JTable(model = new DefaultTableModel(p, n)); DefaultTableCellRenderer ter = new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { // 设置偶数行颜色 if (row % 2 == 0) { setBackground(Color.white); } // 设置奇数行颜色 else if (row % 2 == 1) { setBackground(new Color(206, 231, 255)); } return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); } }; for (int i = 0; i <= 3; i++) { table.getColumn(n[i]).setCellRenderer(ter); } scroPanel.getViewport().setBackground(Color.WHITE); scroPanel.getViewport().add(table); // 总体界面布局---------------------- getContentPane().add(scroPanel, BorderLayout.CENTER); } /** * 方法:界面显示 */ private void confcolor() { setTitle("编辑器的测试"); setSize(500, 400); Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); Dimension frameSize = this.getPreferredSize(); setLocation(screenSize.width / 2 - (frameSize.width) / 2, screenSize.height / 2 - (frameSize.height / 2)); setResizable(false); setVisible(true); } /** * 添加事件监听addListener() */ private void addListener() { this.addWindowListener(new WindowAdapter() { // 添加窗口关闭事件 @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } /** * 程序入口main() * * @param args */ public static void main(String[] args) { new Test11(); }}
运行结果如图:
JTable的API并没有提供更改表格行或列的颜色的能力,表格的表头和内容呈现的形式都是由相应的Renderer(渲染器)来控制的,所以,只需要继承单元格默认的Renderer并作相应的修改就可以达到目的,
0 0
- Java Swing JTable 表格【9:表格使用渲染器DefaultTableCellRenderer】
- Java Swing JTable 表格【10:表格使用编辑器DefaultTableCellRenderer】
- Java Swing JTable 表格【11:表格使用自定义渲染器】
- Java Swing JTable 表格【8:表格使用选择器SelectionModel】
- Java Swing编程:JTable表格
- Java Swing编程:JTable表格
- java swing Jtable 自定义 表格
- Java Swing JTable 表格【17:使用编辑器验证文本】
- Swing编程JTable表格
- java swing sql->jtable表格 查询
- Java Swing JTable 表格【1:创建表格填充数据】
- Java Swing JTable 表格【2:创建空表格】
- Java Swing JTable 表格【4:表格模型TableModel】
- Java Swing JTable 表格【5:表格模型AbstractTableModel】
- Java Swing JTable 表格【6:表格模型DefaultTableModel】
- Java Swing JTable 表格【7:监听表格数据变化】
- Java Swing JTable 表格【14:表格的排序和过滤】
- swing jtable表格背景设置
- Android倒计时器CountDownTimer
- nyoj 305 表达式求值
- 【图像基础】局部特征点的理解
- Vmware 11.0下面安装Ubuntu14.04
- STP指定端口和根端口的选择
- Java Swing JTable 表格【9:表格使用渲染器DefaultTableCellRenderer】
- Dubbo架构设计详解
- 初学polya
- 如何在eclipse中使用hibernate持久化框架
- Machine Learning-AdaBoost算法
- java String 基础(面试过程估计会以有)
- web.py 初使用
- Node.js_同步/异步回调
- Oracle基础-新增、修改、删除、重命名表字段(DDL)