一.创建表格控件的各种方式:
1) 调用无参构造函数.
JTable table = new JTable();
2) 以表头和表数据创建表格.
Object[][] cellData = {{"row1-col1", "row1-col2"},{"row2-col1", "row2-col2"}};
String[] columnNames = {"col1", "col2"};
JTable table = new JTable(cellData, columnNames);
3) 以表头和表数据创建表格,并且让表单元格不可改.
String[] headers = { "表头一", "表头二", "表头三" };
Object[][] cellData = null;
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
table = new JTable(model);
二.对表格列的控制
1) 设置列不可随容器组件大小变化自动调整宽度.
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
2) 限制某列的宽度.
TableColumn firsetColumn = table.getColumnModel().getColumn(0);
firsetColumn.setPreferredWidth(30);
firsetColumn.setMaxWidth(30);
firsetColumn.setMinWidth(30);
3) 设置当前列数.
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
int count=5;
tableModel.setColumnCount(count);
4) 取得表格列数
int cols = table.getColumnCount();
5) 添加列
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.addColumn("新列名");
6) 删除列
table.removeColumn(table.getColumnModel().getColumn(columnIndex));// columnIndex是要删除的列序号
三.对表格行的控制
1) 设置行高
table.setRowHeight(20);
2) 设置当前航数
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
int n=5;
tableModel.setRowCount(n);
3) 取得表格行数
int rows = table.getRowCount();
4) 添加表格行
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.addRow(new Object[]{"sitinspring", "35", "Boss"});
5) 删除表格行
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
model.removeRow(rowIndex);// rowIndex是要删除的行序号
四.存取表格单元格的数据
1) 取单元格数据
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
String cellValue=(String) tableModel.getValueAt(row, column);// 取单元格数据,row是行号,column是列号
2) 填充数据到表格.
注:数据是Member类型的链表,Member类如下:
public class Member{
// 名称
private String name;
// 年龄
private String age;
// 职务
private String title;
}
填充数据的代码:
public void fillTable(List<Member> members){
DefaultTableModel tableModel = (DefaultTableModel) table
.getModel();
tableModel.setRowCount(0);// 清除原有行
// 填充数据
for(Member member:members){
String[] arr=new String[3];
arr[0]=member.getName();
arr[1]=member.getAge();
arr[2]=member.getTitle();
// 添加数据到表格
tableModel.addRow(arr);
}
// 更新表格
table.invalidate();
}
2) 取得表格中的数据
public List<Member> getShowMembers(){
List<Member> members=new ArrayList<Member>();
DefaultTableModel tableModel = (DefaultTableModel) table
.getModel();
int rowCount=tableModel.getRowCount();
for(int i=0;i<rowCount;i++){
Member member=new Member();
member.setName((String)tableModel.getValueAt(i, 0));// 取得第i行第一列的数据
member.setAge((String)tableModel.getValueAt(i, 1));// 取得第i行第二列的数据
member.setTitle((String)tableModel.getValueAt(i, 2));// 取得第i行第三列的数据
members.add(member);
}
return members;
}
五.取得用户所选的行
1) 取得用户所选的单行
int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
if(selectRows==1){
int selectedRowIndex = table.getSelectedRow(); // 取得用户所选单行
.// 进行相关处理
}
2) 取得用户所选的多行
int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
if(selectRows>1)
int[] selRowIndexs=table.getSelectedRows();// 用户所选行的序列
for(int i=0;i<selRowIndexs.length;i++){
// 用tableModel.getValueAt(row, column)取单元格数据
String cellValue=(String) tableModel.getValueAt(i, 1);
}
}
六.添加表格的事件处理
view.getTable().addMouseListener(new MouseListener() {
public void mousePressed(MouseEvent e) {
// 鼠标按下时的处理
}
public void mouseReleased(MouseEvent e) {
// 鼠标松开时的处理
}
public void mouseEntered(MouseEvent e) {
// 鼠标进入表格时的处理
}
public void mouseExited(MouseEvent e) {
// 鼠标退出表格时的处理
}
public void mouseClicked(MouseEvent e) {
// 鼠标点击时的处理
}
});
分享到:
相关推荐
Java Swing高级空件JTable的用法 Java Swing中的JTable组件是用于显示和编辑数据的表格控件。...JTable组件是Java Swing中一个非常重要和有用的组件,开发者应该深入学习和掌握它的用法和相关知识点。
在Swing中,`JTable`是一个非常重要的组件,它用于显示和编辑表格数据。`JTable`可以用于显示二维数据,比如数据库记录或者任何其他表格格式的数据。在本篇中,我们将深入探讨`JTable`的使用,包括它的合并功能。 ...
学习这个工具的源码,还可以帮助你理解Swing组件的内部工作原理,提升你的Java GUI编程能力。 在实际开发中,正确地利用`table4j`这样的工具可以极大地提高开发效率,减少重复代码,并且能够提供更符合业务需求的...
在Java的Swing库中,`JTable`是用于创建表格视图的重要组件。它允许开发者展示和操作二维数据集,...通过学习和分析这个示例,开发者能够更好地理解和掌握`JTable`在实际项目中的运用,提升Java Swing界面开发的能力。
中级阶段还会涉及模型-视图-控制器(MVC)设计模式,Swing中的许多组件遵循这一模式,如JTable和JList,它们的模型可以独立于视图和控制器进行操作。 **高级篇:自定义组件与高级特性** 在高级阶段,学习如何创建...
Java Swing是Java GUI(图形用户界面)库的一部分,用于创建桌面应用程序。在Java Swing中,...在`TestSwing`项目中,通过阅读和学习这些组件的使用方式,开发者可以加深对Java Swing的理解,并应用于实际项目中。
在 Swing 学习中,我们主要关注的是如何使用它来创建丰富的桌面应用程序。Swing 提供了大量的组件,如按钮、文本框、菜单等,让开发者能够构建出功能齐全、交互性强的应用。 首先,Swing 是轻量级的,这意味着它不...
在这个"java swing 学习资料"中,我们可以通过提供的源码来深入理解Swing的基本用法和实践技巧。 Swing 包含了各种组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格(JScrollPane)...
Swing学习系列是Java开发中的一个重要部分,它是一种用于构建桌面应用程序的图形用户界面(GUI)工具包。这篇Swing读书笔记目录旨在帮助开发者更好地理解和掌握Swing的相关知识,通过阅读和学习,可以提升在Java GUI...
Java Swing 是Java GUI(图形用户界面)...学习Java Swing,不仅可以理解GUI编程的基本原理,还能掌握构建美观、功能丰富的桌面应用程序的技能。通过实践和理解上述知识点,你将能够熟练地使用Swing进行Java GUI开发。
Swing的学习主要涵盖以下几个核心知识点: 1. **组件(Components)**:Swing中的组件是构成GUI的基本元素,如JButton、JLabel、JTextField、JTextArea、JComboBox等。每个组件都有其特定的功能,比如JButton用于...
Swing提供了许多预定义的组件,如JButton、JLabel、JTextField、JTextArea、JScrollPane、JTable、JTree以及JTabbedPane等,这些组件具有更好的性能和可定制性。 1. **组件的使用** - JButton:用于创建可点击的...
这些代码可能涵盖了更复杂的功能,比如自定义渲染器、拖放操作、数据绑定等,学习这些代码可以帮助开发者更好地理解和应用JTree和JTable在实际项目中的各种用法。 总之,JTree和JTable是Java GUI编程中不可或缺的...
本资源“JAVA_Swing 学习经典例子”是一个包含各种Swing功能实现的代码集合,适用于不同水平的开发者学习和参考。 Swing 提供了大量可定制的组件,如按钮、文本框、菜单、滚动面板等,这些组件都是轻量级的,不依赖...
### Java Swing 知识总结学习笔记 #### 一、Swing 概述 Swing 是一个用于构建桌面应用程序的 Java 图形用户界面 (GUI) 工具包,它基于 Java Abstract Window Toolkit (AWT) 构建而成。Swing 提供了更丰富的组件集...
这个“swing例子学习资料”很可能是为了帮助开发者深入理解和熟练运用Swing进行GUI开发而准备的一系列示例代码和教程。 Swing的特点之一是它使用轻量级组件,这意味着它们主要由Java代码实现,而不是依赖于操作系统...
### Java中的JTable用法详解 #### 一、概述 JTable是Swing框架中用于显示和编辑表格数据的关键组件之一。它不仅提供了强大的数据管理功能...通过对JTable的学习和实践,开发者可以轻松创建出满足各种需求的表格界面。
在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示数据集。它是Swing的`javax.swing.JTable`类,允许用户查看和编辑表格形式的数据。本教程将详细介绍如何学习并有效利用`JTable`来创建用户...
它是`javax.swing.JTable`类的一个实例,提供了一个灵活且功能丰富的用户界面,允许用户查看和编辑二维数据集。本示例将深入探讨`JTable`的使用,这对于初学者理解和掌握Java GUI编程至关重要。 ### 1. 创建JTable ...
在Java Swing库中,`JTree`和`JTable`是两种非常重要的组件,用于创建用户界面。`JTree`通常用于展示层次化的数据...通过这个示例,开发者可以学习到如何有效地组合和使用Swing组件,以创建功能丰富的图形用户界面。