JTable的使用问题

1.设置指定列单元格的前景色


//获取TableColumn对象
TableColumn tableColumn = jTable.getColumn("月薪");

//初始化Table的渲染器
DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer();
//设置单元格的前景色
cellRenderer.setForeground(Color.red);

//将渲染器设置到获取到的列
tableColumn.setCellRenderer(cellRenderer);

2.设置指定单元格的背景色

//获取TableColumn对象
TableColumn departmentColumn = jTable.getColumn("部门");

//重新申明渲染器
DefaultTableCellRenderer cellRenderer2 = new DefaultTableCellRenderer();
//设置单元格的背景色
cellRenderer2.setBackground(Color.blue);

//将渲染器放入
departmentColumn.setCellRenderer(cellRenderer2);

3.设置不能拖动一列

jTable.getTableHeader().setReorderingAllowed(false);

4.设置每一列的大小不能改变

jTable.getTableHeader().setResizingAllowed(false);

5.设置每一行颜色交替

DefaultTableCellRenderer cellRenderer3 = new DefaultTableCellRenderer(){

public Component getTableCellRendererComponent(JTable arg0,Object arg1, boolean arg2, boolean arg3, int arg4, int arg5) {
// TODO Auto-generated method stub

if(arg4%2 == 0){
this.setBackground(Color.pink);
}
else {
this.setBackground(Color.white);
}

return super.getTableCellRendererComponent(arg0, arg1, arg2, arg3, arg4, arg5);
}
};

//每一格设置渲染器
for(int i=0; i<jTable.getColumnCount(); i++){
TableColumn tableColumn = jTable.getColumn(jTable.getColumnName(i));
tableColumn.setCellRenderer(cellRenderer3);
}

6.在表格中创建下拉框

JComboBox jComboBox = new JComboBox();
jComboBox.addItem("人事部");
jComboBox.addItem("经理部");
jComboBox.addItem("开发部");
jComboBox.addItem("财务部");

//获取列
TableColumn tableColumn = jTable.getColumn("部门");
//生成表格编辑器
DefaultCellEditor defaultCellEditor = new DefaultCellEditor(jComboBox);
//设置表格编辑器
tableColumn.setCellEditor(defaultCellEditor);

7.设置单元格中的对齐方式

DefaultTableCellRenderer cellRenderer3 = new DefaultTableCellRenderer();
cellRenderer3.setHorizontalAlignment(JLabel.CENTER);
for (int i = 0; i < jTable.getColumnCount(); i++) {
TableColumn tc = jTable.getColumn(jTable.getColumnName(i));
tc.setCellRenderer(cellRenderer3);
}

8.在对数据进行添加时,可以使用DefaultTableModel类的对象的addRow方法直接添加到TalbeModel中,当然,对应数据库也要进行操作。

注意!在为JTable指定样式的时候,后面定义的会覆盖前面定的(例如:5对其他样式就有覆盖作用,如果5放在后面会将前面所有的样式都覆盖掉)

时间: 2024-10-10 15:46:15

JTable的使用问题的相关文章

Swing中使用JTable动态获取数据库中的数据并显示

笔者注:本文供新手学习使用,若有一定基础,可以直接看3! 1.创建数据库: /* Navicat MySQL Data Transfer Source Server : aa Source Server Version : 50519 Source Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Server Version : 50519 File Encoding : 65001 D

JTable只要一双击就进入编辑状态,禁止的方法实现

我用JTable做了一个表格,表格内容只供查看和选择,可每次只要一双击,就进入编辑状态,可是现在我不需要当双击的时候修改表格的内容.这时候需要重载isCellEditable方法. 下面是我的实现的代码: DefaultTableModel model = new DefaultTableModel(date, columnNames) { public boolean isCellEditable(int row, int column) { return false; } }; 这样设置的话

JTable用法-实例

前几篇文章介绍了JTable的基本用法,本文实现一个简单的JTable,算是前文的一个总结,并造福供拷贝党们. Swing-JTable用法-入门 Swing-JTable的渲染器与编辑器使用demo Swing-JTable检测单元格数据变更事件 一.主要功能 1.数据的增删改: 2.渲染器:“Vegetarian”列存放布尔值,以checkBox形式显示:“Sport”列存放字符串,以comboBox形式显示: 3.编辑器:“Name”的编辑器实现一个按钮,按下时弹出对话框: 4.ToolT

Java 根据comboBox选择结果显示JTable

处理这样的问题的主要思路是:     对于JTable,JTree等Swing控件,都有一个对应的Model用来存储数据,JTable对应的有一个DefaultTableModel.     DefaultTableModel model = new DefaultTableModel(datas,columnNames);     JTable jTable = new JTable(model);        DefaultTableModel这个类支持使用数组Object[][]或者是V

JTable 和 AbstractTableModel 几个关键点

1    重写的方法 @Override public int getColumnCount() { // TODO Auto-generated method stub return this.columnNames.size(); } @Override public String getColumnName(int column) { // TODO Auto-generated method stub return (String) this.columnNames.get(column

【代码笔记】Java连连看项目的实现(2)——JTable 、TableModel的使用

博客有时间就写写,所以一篇可能会拆成很多篇,写完后计划再合在一起. 首先肯定是要实现连连看的界面. 先准备连连看要的图片.. “LianLianKan”就是项目名称. 当然,如果小白看我的博客想学到什么,我会说还是放弃,因为文字描述会忽视很多细节,而细节决定bug…… 所以,包括以前的和以后的,博文都会是给自己看看或者内行触类旁通的,也就是——笔记. 我也是今天才明白博文的真正意义吧,所以以后的博文风格会大改……尽量会用自己语言风格来描述以便自己能看懂. 废话少说,现在的第2步: 创建数组,一个

JavaSE GUI显示列表 JTable的刷新 重新加载新的数据

JTable在显示所有数据之后,假如需要搜索某个名字,则会获取新的列表数据. 假设datas是JTable的数据,定义为: private Vector<Vector> datas = new Vector<Vector>(); 当你刷新数据的时候,应该这样: if (datas != null) { datas.clear(); Vector<Vector> vectors = getDatasFromList(studentList); datas.addAll(v

JTable 单元格合并 【转】

单元格合并 一.单元格合并.(1)我们可以使用Jtable的三个方法:getCellRect(),columnAtPoint(),and rowAtPoint().第一个方法返回一个单元格的边界(Rectangle类),第二.三个方法分别返回屏幕指定位置的列和行.为了实现单元格合并,我们需要重载(overwrite)这三个方法. (2)另外我们需要找出渲染Jtable的ComponentUI对象,并且修改它以达到我们的目的. (3)创建新的类记录单元格合并情况的数据模型,它要包涵一个方法来取得单

【代码笔记】Java连连看项目的实现(1)——JTable 、TableModel的使用

javax.swing.table.TableModel和javax.swing.JTable JTable .TableModel是Java里面画表格的包. TableModel:为Table提供显示数据.表格维数.表格中显示数据类  型.列标题等Table需要显示的一些属性 JTable:提供表格本身的属性和操作,比如表格的样式.行高.背景.行选中属性等 JTable相当于网页,模特:TableModel相当于服务器,衣服. JTable .TableModel 两者是相互依赖的关系(等于B

Swing Jtable 网格线设置

Swing jtable不绘制网格线或只绘制一条垂直或水平线问题总结 1 不绘制网格线…但占屏幕空间…网格是透明的…. myJTable1.setShowHorizontalLines(false); 水平线不显示 myJTable1.setShowVerticalLines(false); 垂直线不显示 2 不绘制网格线…并且不占屏幕空间…网格是没有的…. setIntercellSpacing():修改单元格间隔,因此也将影响网格线的粗细. setRowMargin (0);设置相邻两行单元