`

swing 表格的实现

阅读更多

 

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 Swing 是一个用于构建图形用户界面的 Java 库,提供了丰富的用户界面组件和功能。在本文中,我们将探讨如何使用 Java Swing 实现表格分页。 表格分页的需求 在实际开发中,我们经常...

    java之swing表格实现方法

    本篇文章将详细探讨如何在Java Swing中实现表格功能。 首先,为了创建一个`JTable`,我们需要准备两部分数据:列标题(column headers)和数据行(rows)。在给定的代码实例中,列标题存储在一个字符串数组`...

    SWING 表格

    通过阅读和运行这个文件,可以更直观地理解Swing表格的用法。 总的来说,Swing的JTable组件是Java桌面应用中处理数据的强大工具,通过理解并掌握它的核心概念和API,开发者能够创建出交互性强且功能丰富的数据展示...

    java的swing表格树示例

    在Swing中,我们可以使用JTable和JTree来创建表格和树形视图,这两个组件可以独立使用,也可以结合在一起,形成一个具有表格和树结构的复杂视图,这在数据展示和操作时非常有用。 **JTable组件** JTable是Swing中...

    使用Java Swing界面实现数据库基本操作

    ### 使用Java Swing界面实现数据库基本操作 #### 一、引言 在软件开发领域,图形用户界面(GUI)是提高用户体验的重要组成部分。Java Swing作为Java平台上的一个强大的GUI工具包,为开发者提供了丰富的组件和功能来...

    Java Swing实现添加数据并查询数据显示

    在本项目中,"Java Swing实现添加数据并查询数据显示" 涉及到了Java后端与数据库交互以及前端用户界面的构建。 首先,你需要了解如何在Java中连接MySQL数据库。这通常涉及到使用JDBC(Java Database Connectivity)...

    java(swing)+ mysql实现学生信息管理系统

    Java Swing + MySQL 实现学生信息管理系统知识点总结 通过对给定的文件信息,总结出以下 Java Swing + MySQL 实现学生信息管理系统的知识点: 一、Java Swing 组件 * 使用 Java Swing 组件创建图形用户界面(GUI...

    java swing mysql实现的酒店管理系统项目源码_swing_JavaSwing_酒店管理系统_

    Java Swing MySQL实现的酒店管理系统项目源码是一款基于Java图形用户界面(GUI)库Swing和关系型数据库管理系统MySQL开发的应用程序。此系统旨在为酒店提供一套全面的后台管理解决方案,涵盖了酒店日常运营中的核心...

    java Swing可以改变表格每一行颜色的类

    自己写的一个类,可以用来设定表格奇偶行的颜色,也可以用来设定每一行的颜色,还可以改变其它的属性。

    使用Java Swing界面实现数据库基本操作.rar,Java Swing界面实现数据库基本操作

    本教程将深入探讨如何利用Java Swing构建一个交互式的应用程序,实现与数据库的基本操作,如查询、插入、更新和删除数据。 首先,我们需要理解Java Swing的基础。Swing是Java AWT(Abstract Window Toolkit)的扩展...

    Swing表格处理

    本篇文章将深入探讨Swing表格处理中的两个关键知识点:表格的排序和表格单元格的背景色设置。 首先,我们来看表格的排序。在Swing中,JTable默认并不支持数据的自动排序,但可以通过实现`SortableTableModel`接口或...

    Java+Swing+Mysql实现学生信息管理系统

    Java+Swing+MySQL实现的学生信息管理系统是一种基于Java编程语言,采用Swing作为图形用户界面(GUI)开发工具,结合MySQL数据库进行数据存储的应用程序。这个系统为管理学生信息提供了直观且用户友好的界面,实现了...

    JAVA Swing 实现商品列表,数量加减 ,删除整行 Demo

    首先,我们需要了解`JTable`,这是Swing中的一个核心组件,用于展示二维表格数据。在本Demo中,`JTable`被用来显示商品列表,每行代表一个商品,列可能包括商品名称、单价、数量等信息。 要实现在`JTable`中增加...

    用Swing实现数据表格功能.rtf

    用Swing实现数据表格功能.rtf 比较的详细,推荐大家下载

    Swing实现编辑器(支持语法高亮)

    Swing提供了一系列组件,用于创建丰富的桌面应用程序,包括按钮、文本框、表格、菜单等,以及复杂的布局管理器。 在Swing中实现一个编辑器,首先需要理解Swing的基础组件,如JFrame、JPanel和JTextComponent系列。...

    javax.swing实现分页

    【标题】"javax.swing实现分页" 在Java编程中,`javax.swing` 是一个用于创建图形用户界面(GUI)的包,它包含了丰富的组件和工具类,使得开发者能够构建出功能丰富的桌面应用。分页是一种常见于数据量较大的场景中...

    Java Swing JTable分页

    ### Java Swing JTable 分页实现详解 #### 一、引言 在开发基于Java Swing的应用程序时,我们经常需要处理大量的数据展示问题。对于表格形式的数据展示,`JTable`是一个非常常用且强大的组件。然而,当数据量过大时...

    用Java程序读取Excel表格内容并显示在Swing中

    在Java编程环境中,读取Excel表格内容并将其展示在Swing界面是一项常见的任务,尤其在数据处理和报表展示方面。本篇文章将详细讲解如何实现这一功能。 首先,我们需要引入两个关键库:Apache POI用于读取Excel文件...

    java Swing mysql实现的人事管理系统项目源码(有运行视频))

    首先,关于Java Swing,它是Java标准库中的一个图形用户界面(GUI)工具包,提供了丰富的组件如按钮、文本框、表格等,用于构建桌面应用。在本项目中,Swing被用来创建各种窗口、菜单和对话框,使用户可以方便地浏览、...

    Java SE 6.0编程指南 26_第二十六章 Swing表格源码

    第二十六章"Swing表格源码"深入探讨了如何利用JTable来高效地显示和操作表格数据。 首先,JTable是一个非常灵活的组件,能够根据提供的数据模型动态生成表格。数据模型通常是DefaultTableModel或AbstractTableModel...

Global site tag (gtag.js) - Google Analytics