今天写一篇关于JTable有关的文章,包括:为JTable单元格设置字体颜色、为JTable单元格设置背景色、让JTable某一列设置为不可能编辑。代码很简单,请朋友们参考如下:
package Java;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import javax.swing.JComboBox;
import javax.swing.table.TableColumn;
import javax.swing.DefaultCellEditor;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.Color;
import javax.swing.table.DefaultTableModel;
/**
* 设置单元格为不可编辑状态
* @author 刘阳
*/
public class JTableFrame_4 extends JFrame {
private JPanel panel;
private JTable table; //定义个二维数据表格
private JScrollPane scrollPane; //定义带有滚动条的面板
private DefaultTableModel dtm; //定义表格模型,该模型可以存放数据
//初始化数据
Object[][] rowData = {
{"1001", "李汉", "软件部", new Double(3000)},
{"1002", "朱泽", "软件部", new Double(3100)},
{"1003", "刘宇", "经理部", new Double(3000)},
{"1004", "张斌", "软件部", new Double(4000)},
{"1005", "秦小", "人事部", new Double(4000)}
};
//初始化列名
Object[] columnNames = {"编号", "姓名", "部门", "月薪"};
public JTableFrame_4() {
super("单元格具有下拉框的表格");
init();
}
public void init() {
setSize(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//利用TableModel重新覆盖isCellEditable方法,将第一列变成不可编辑状态
dtm = new DefaultTableModel(rowData, columnNames) {
public boolean isCellEditable(int rowIndex, int columnIndex) {
boolean f = (0 <= rowIndex && rowIndex < getRowCount() && columnIndex == 0) ? false : true;
return f;
}
};
table = new JTable(dtm);
JComboBox comboBox = new JComboBox();
comboBox.addItem("软件部");
comboBox.addItem("经理部");
comboBox.addItem("人事部");
comboBox.addItem("后勤部");
comboBox.addItem("财务部");
//TableColumn主要作用可以对表格中的某一列的属性进行编辑
TableColumn tableColumn = table.getColumn("部门");
//利用TableColumn类中的setCellEditor()方法来设置单元格的编辑器
//DefaultCellEditor类可以将表格中的单元格设置成下拉框
tableColumn.setCellEditor(new DefaultCellEditor(comboBox));
//DefaultTableCellRenderer类可以绘制单元格的背景、字体颜色等功能
DefaultTableCellRenderer backGroundColor = new DefaultTableCellRenderer();
//绘制部门列的背景为黄色
backGroundColor.setBackground(Color.yellow);
tableColumn.setCellRenderer(backGroundColor);
TableColumn moneyColumn = table.getColumn("月薪");
//绘制月薪列的字体颜色
DefaultTableCellRenderer fontColor = new DefaultTableCellRenderer() {
public void setValue(Object value) { //重写setValue方法,从而可以动态设置列单元字体颜色
double a = (value instanceof Double) ? ((Double) value).doubleValue() : 0.0; //获取月薪列中的值
setForeground((a > 3099.0) ? Color.red : Color.black); //如果月薪大于3099元,就将字体设置为红色
setText((value == null) ? "" : value.toString());
}
};
moneyColumn.setCellRenderer(fontColor);
panel = new JPanel();
panel.setLayout(new BorderLayout());
scrollPane = new JScrollPane();
scrollPane.getViewport().setView(table); //把二维数据表格放到滚动面板中
panel.add(scrollPane, BorderLayout.CENTER); //把滚动面板添加到底层面板上
this.getContentPane().add(panel, BorderLayout.CENTER);
setVisible(true);
}
public static void main(String[] args) {
JTableFrame_4 f = new JTableFrame_4();
}
}
阳阳老师笔记
- 大小: 9.9 KB
分享到:
相关推荐
Swing中的JTable组件是Java GUI开发中用于展示表格数据的重要工具,它是Swing库中的一个核心组件。JTable能够方便地创建和管理表格数据,同时也支持用户交互,如编辑单元格、排序、选择行等操作。下面我们将深入探讨...
《JTable的实战之财务管理简化版》是一款基于Java Swing组件JTable的应用程序,它专为财务管理设计,提供了分页查询、模糊查询以及实时刷新、批量删除等实用功能。这款原创程序旨在帮助用户更高效地管理和操作财务...
它是Swing中最复杂和强大的组件之一,具有许多高级功能和灵活的配置选项。下面将详细介绍JTable的用法和相关知识点。 1. JTable与TableModel JTable组件的核心是TableModel接口,它定义了表格的结构和数据。...
Java JTable 是Java Swing库中的一个核心组件,用于在GUI应用程序中展示表格数据。它允许用户查看、编辑和操作二维数据集,常...对于初学者,理解JTable的工作原理和如何自定义数据模型是掌握Swing开发的关键步骤之一。
它提供了丰富的组件,其中之一就是JTable,这是一个强大的组件,用于展示二维数据集,并允许用户进行交互操作。在"swing中JTable的简单使用"这个主题中,我们将深入探讨如何在Java Swing应用中有效地使用JTable。 ...
Java表格组件JTable是Swing库中的核心组件之一,它用于在GUI应用程序中展示数据集。JTable不仅可以显示数据,还允许用户与数据进行交互,如编辑、排序和选择。在Java编程中,掌握JTable的使用对于创建功能丰富的图形...
`JTable`用于展示二维表格数据,而`JComboBox`则是一种下拉选择框,可以提供多个选项供用户选择。在某些场景下,我们可能需要在`JTable`的某一列中嵌入`JComboBox`,以实现更加灵活的数据输入方式。本篇将详细介绍...
通过上述介绍,可以看出 `JTable` 组件的强大之处在于它不仅能够灵活地展示数据,还提供了许多自定义选项以满足不同的需求。掌握这些基本用法后,开发者可以根据自己的项目特点来进一步定制化表格的功能和外观,以...
在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据表格。它提供了丰富的功能,如排序、选择、...`DataGridView`可以直接绑定到数据源,支持列操作、编辑、排序等,使用方式与`JTable`有诸多相似之处。
在Java编程领域,Swing库提供了丰富的组件来创建桌面应用程序,其中之一便是JTable。`JTable`是用于显示和编辑表格数据的组件,它在GUI(图形用户界面)设计中非常常见,尤其适用于数据展示和交互。本资料集合了25个...
它是 Java 编程中最常用的表格组件之一。下面是 JTable 应用的详细知识点: JTable 与 TableModel JTable 组件需要一个TableModel 对象来提供数据。TableModel 是一个接口,定义了数据的结构和内容。JTable 使用 ...
JTable是Swing框架中用于显示和编辑表格数据的关键组件之一。它不仅提供了强大的数据管理功能,还支持丰富的定制选项,使得开发者能够根据具体需求创建出高度个性化的表格界面。 #### 二、JTable基本用法 1. **...
1. **JTable**: 是Swing组件之一,用于在GUI应用中展示表格形式的数据。 2. **jxl**: jxl(Java Excel API)是一个开源库,允许开发者读取、写入Microsoft Excel文件。 3. **WritableWorkbook/WritableSheet**: 这两...
`Swing之JTable详解.doc`可能包含了`JTable`的基本用法、构造函数、方法以及如何添加、删除和修改表格数据等内容。`2.高级Swing组件JTable应用.doc`可能进一步讨论了`JTable`的高级特性,如排序、过滤、拖放操作,...
JTable类构建在JScrollPane之上,因此可以自动处理滚动。你可以创建一个JTable实例,并提供一个TableModel来填充数据,这个模型可以是自定义的,以适应不同的数据源。JTable还支持行选择、排序、列调整等功能,可以...
要操作 JTable,我们需要使用 JTable 的模型,特别是 DefaultTableModel 来操作行和 TableColumnModel 来操作列。 这个简单的示例将向您展示如何将 JTable 集成到您的项目中,使用它来显示、编辑、删除和使用二进制...
在代码中,可以看到`column`向量包含了空字符串作为表头,这可能是导致表头不显示的原因之一。 2. **表头渲染问题**:`JTable`的表头默认使用`JTableHeader`组件渲染,如果该组件的某些属性设置不当,也可能导致...
虽然这里没有详细介绍JTree的使用,但通常JTree的创建和操作与JTable有相似之处,都是基于数据模型,通过编程或设计视图添加到窗口布局中。 总之,北大青鸟的这一章内容旨在帮助初学者掌握Swing中的基本菜单系统和...
- "C#":XPTable控件是用C#语言编写的,这是.NET Framework的主要开发语言之一。 - "Win2K, WinXP, Win2003":这些是Windows操作系统版本,表明XPTable适用于这些系统,具有良好的平台兼容性。 - "Windows":XPTable...
JTable是Swing组件之一,用于在窗口中展示表格数据,非常适合用来显示数据库查询结果。通过JTable,用户可以直观地看到数据,并能进行基本的操作,如排序、选择和编辑单元格。 JDBC是Java连接数据库的标准API,它...