import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class TableDemo extends JFrame {
private boolean DEBUG = true;
public TableDemo() { // 实现构造方法
super("RecorderOfWorkers"); // 首先调用父类JFrame的构造方法生成一个窗口
MyTableModel myModel = new MyTableModel();// myModel存放表格的数据
JTable table = new JTable(myModel);// 表格对象table的数据来源是myModel对象
table.setPreferredScrollableViewportSize(new Dimension(500, 70));// 表格的显示尺寸
// 产生一个带滚动条的面板
JScrollPane scrollPane = new JScrollPane(table);
// 将带滚动条的面板添加入窗口中
getContentPane().add(scrollPane, BorderLayout.CENTER);
addWindowListener(new WindowAdapter() {// 注册窗口监听器
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
// 把要显示在表格中的数据存入字符串数组和Object数组中
class MyTableModel extends AbstractTableModel {
// 表格中第一行所要显示的内容存放在字符串数组columnNames中
final String[] columnNames = { "First Name", "Position", "Telephone",
"MonthlyPay", "Married" };
// 表格中各行的内容保存在二维数组data中
final Object[][] data = {
{ "Wang Yi", "Executive", "01068790231", new Integer(5000),
new Boolean(false) },
{ "Li Si", "Secretary", "01069785321", new Integer(3500),
new Boolean(true) },
{ "Li Wu", "Manager", "01065498732", new Integer(4500),
new Boolean(false) },
{ "Zhao Liu", "Safeguard", "01062796879", new Integer(2000),
new Boolean(true) },
{ "Chen Qi", "Salesman", "01063541298", new Integer(4000),
new Boolean(false) } };
// 下述方法是重写AbstractTableModel中的方法,其主要用途是被JTable对象调用,///以便在表格中正确的显示出来。程序员必须根据采用的数据类型加以恰当实现。
// 获得列的数目
public int getColumnCount() {
return columnNames.length;
}
// 获得行的数目
public int getRowCount() {
return data.length;
}
// 获得某列的名字,而目前各列的名字保存在字符串数组columnNames中
public String getColumnName(int col) {
return columnNames[col];
}
// 获得某行某列的数据,而数据保存在对象数组data中
public Object getValueAt(int row, int col) {
return data[row][col];
}
// 判断每个单元格的类型
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
// 将表格声明为可编辑的
public boolean isCellEditable(int row, int col) {
if (col < 2) {
return false;
}
else {
return true;
}
}
// 改变某个数据的值
public void setValueAt(Object value, int row, int col) {
if (DEBUG) {
System.out.println("Setting value at " + row + "," + col
+ " to " + value + " (an instance of "
+ value.getClass() + ")");
}
if (data[0][col] instanceof Integer && !(value instanceof Integer)) {
try {
data[row][col] = new Integer(value.toString());
fireTableCellUpdated(row, col);
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(TableDemo.this, "The "
+ getColumnName(col)
+ " column accepts only integer values.");
}
}
else {
data[row][col] = value;
fireTableCellUpdated(row, col);
}
if (DEBUG) {
System.out.println("New value of data:");
printDebugData();
}
}
private void printDebugData() {
int numRows = getRowCount();
int numCols = getColumnCount();
for (int i = 0; i < numRows; i++) {
System.out.print(" row " + i + ":");
for (int j = 0; j < numCols; j++) {
System.out.print(" " + data[i][j]);
}
System.out.println();
}
System.out.println("--------------------------");
}
}
public static void main(String[] args) {
TableDemo frame = new TableDemo();
frame.pack();
frame.setVisible(true);
}
}
分享到:
相关推荐
Java Swing 表格分页实现 Java Swing 是一个用于构建图形用户界面的 Java 库,提供了丰富的用户界面组件和功能。在本文中,我们将探讨如何使用 Java Swing 实现表格分页。 表格分页的需求 在实际开发中,我们经常...
本篇文章将详细探讨如何在Java Swing中实现表格功能。 首先,为了创建一个`JTable`,我们需要准备两部分数据:列标题(column headers)和数据行(rows)。在给定的代码实例中,列标题存储在一个字符串数组`...
通过阅读和运行这个文件,可以更直观地理解Swing表格的用法。 总的来说,Swing的JTable组件是Java桌面应用中处理数据的强大工具,通过理解并掌握它的核心概念和API,开发者能够创建出交互性强且功能丰富的数据展示...
在Swing中,我们可以使用JTable和JTree来创建表格和树形视图,这两个组件可以独立使用,也可以结合在一起,形成一个具有表格和树结构的复杂视图,这在数据展示和操作时非常有用。 **JTable组件** JTable是Swing中...
### 使用Java Swing界面实现数据库基本操作 #### 一、引言 在软件开发领域,图形用户界面(GUI)是提高用户体验的重要组成部分。Java Swing作为Java平台上的一个强大的GUI工具包,为开发者提供了丰富的组件和功能来...
在本项目中,"Java Swing实现添加数据并查询数据显示" 涉及到了Java后端与数据库交互以及前端用户界面的构建。 首先,你需要了解如何在Java中连接MySQL数据库。这通常涉及到使用JDBC(Java Database Connectivity)...
Java Swing + MySQL 实现学生信息管理系统知识点总结 通过对给定的文件信息,总结出以下 Java Swing + MySQL 实现学生信息管理系统的知识点: 一、Java Swing 组件 * 使用 Java Swing 组件创建图形用户界面(GUI...
Java Swing MySQL实现的酒店管理系统项目源码是一款基于Java图形用户界面(GUI)库Swing和关系型数据库管理系统MySQL开发的应用程序。此系统旨在为酒店提供一套全面的后台管理解决方案,涵盖了酒店日常运营中的核心...
自己写的一个类,可以用来设定表格奇偶行的颜色,也可以用来设定每一行的颜色,还可以改变其它的属性。
本教程将深入探讨如何利用Java Swing构建一个交互式的应用程序,实现与数据库的基本操作,如查询、插入、更新和删除数据。 首先,我们需要理解Java Swing的基础。Swing是Java AWT(Abstract Window Toolkit)的扩展...
本篇文章将深入探讨Swing表格处理中的两个关键知识点:表格的排序和表格单元格的背景色设置。 首先,我们来看表格的排序。在Swing中,JTable默认并不支持数据的自动排序,但可以通过实现`SortableTableModel`接口或...
Java+Swing+MySQL实现的学生信息管理系统是一种基于Java编程语言,采用Swing作为图形用户界面(GUI)开发工具,结合MySQL数据库进行数据存储的应用程序。这个系统为管理学生信息提供了直观且用户友好的界面,实现了...
首先,我们需要了解`JTable`,这是Swing中的一个核心组件,用于展示二维表格数据。在本Demo中,`JTable`被用来显示商品列表,每行代表一个商品,列可能包括商品名称、单价、数量等信息。 要实现在`JTable`中增加...
用Swing实现数据表格功能.rtf 比较的详细,推荐大家下载
Swing提供了一系列组件,用于创建丰富的桌面应用程序,包括按钮、文本框、表格、菜单等,以及复杂的布局管理器。 在Swing中实现一个编辑器,首先需要理解Swing的基础组件,如JFrame、JPanel和JTextComponent系列。...
【标题】"javax.swing实现分页" 在Java编程中,`javax.swing` 是一个用于创建图形用户界面(GUI)的包,它包含了丰富的组件和工具类,使得开发者能够构建出功能丰富的桌面应用。分页是一种常见于数据量较大的场景中...
### Java Swing JTable 分页实现详解 #### 一、引言 在开发基于Java Swing的应用程序时,我们经常需要处理大量的数据展示问题。对于表格形式的数据展示,`JTable`是一个非常常用且强大的组件。然而,当数据量过大时...
在Java编程环境中,读取Excel表格内容并将其展示在Swing界面是一项常见的任务,尤其在数据处理和报表展示方面。本篇文章将详细讲解如何实现这一功能。 首先,我们需要引入两个关键库:Apache POI用于读取Excel文件...
首先,关于Java Swing,它是Java标准库中的一个图形用户界面(GUI)工具包,提供了丰富的组件如按钮、文本框、表格等,用于构建桌面应用。在本项目中,Swing被用来创建各种窗口、菜单和对话框,使用户可以方便地浏览、...
第二十六章"Swing表格源码"深入探讨了如何利用JTable来高效地显示和操作表格数据。 首先,JTable是一个非常灵活的组件,能够根据提供的数据模型动态生成表格。数据模型通常是DefaultTableModel或AbstractTableModel...