`
javaOpen
  • 浏览: 124452 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Swing Jtable 学习

    博客分类:
  • J2SE
阅读更多

一.创建表格控件的各种方式:
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的用法 Java Swing中的JTable组件是用于显示和编辑数据的表格控件。...JTable组件是Java Swing中一个非常重要和有用的组件,开发者应该深入学习和掌握它的用法和相关知识点。

    swing jtable 合并

    在Swing中,`JTable`是一个非常重要的组件,它用于显示和编辑表格数据。`JTable`可以用于显示二维数据,比如数据库记录或者任何其他表格格式的数据。在本篇中,我们将深入探讨`JTable`的使用,包括它的合并功能。 ...

    Swing JTable工厂(table4j)

    学习这个工具的源码,还可以帮助你理解Swing组件的内部工作原理,提升你的Java GUI编程能力。 在实际开发中,正确地利用`table4j`这样的工具可以极大地提高开发效率,减少重复代码,并且能够提供更符合业务需求的...

    JTable示例源码(Swing demo)

    在Java的Swing库中,`JTable`是用于创建表格视图的重要组件。它允许开发者展示和操作二维数据集,...通过学习和分析这个示例,开发者能够更好地理解和掌握`JTable`在实际项目中的运用,提升Java Swing界面开发的能力。

    java swing深入学习例子

    中级阶段还会涉及模型-视图-控制器(MVC)设计模式,Swing中的许多组件遵循这一模式,如JTable和JList,它们的模型可以独立于视图和控制器进行操作。 **高级篇:自定义组件与高级特性** 在高级阶段,学习如何创建...

    Java Swing Menu组件,JTable组件,JTree组件小示例

    Java Swing是Java GUI(图形用户界面)库的一部分,用于创建桌面应用程序。在Java Swing中,...在`TestSwing`项目中,通过阅读和学习这些组件的使用方式,开发者可以加深对Java Swing的理解,并应用于实际项目中。

    swing学习心得资料

    在 Swing 学习中,我们主要关注的是如何使用它来创建丰富的桌面应用程序。Swing 提供了大量的组件,如按钮、文本框、菜单等,让开发者能够构建出功能齐全、交互性强的应用。 首先,Swing 是轻量级的,这意味着它不...

    java swing 学习资料

    在这个"java swing 学习资料"中,我们可以通过提供的源码来深入理解Swing的基本用法和实践技巧。 Swing 包含了各种组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格(JScrollPane)...

    Swing学习系列 -- Swing读书笔记目录

    Swing学习系列是Java开发中的一个重要部分,它是一种用于构建桌面应用程序的图形用户界面(GUI)工具包。这篇Swing读书笔记目录旨在帮助开发者更好地理解和掌握Swing的相关知识,通过阅读和学习,可以提升在Java GUI...

    java swing学习资料

    Java Swing 是Java GUI(图形用户界面)...学习Java Swing,不仅可以理解GUI编程的基本原理,还能掌握构建美观、功能丰富的桌面应用程序的技能。通过实践和理解上述知识点,你将能够熟练地使用Swing进行Java GUI开发。

    swing学习

    Swing的学习主要涵盖以下几个核心知识点: 1. **组件(Components)**:Swing中的组件是构成GUI的基本元素,如JButton、JLabel、JTextField、JTextArea、JComboBox等。每个组件都有其特定的功能,比如JButton用于...

    java swing 学习教程

    Swing提供了许多预定义的组件,如JButton、JLabel、JTextField、JTextArea、JScrollPane、JTable、JTree以及JTabbedPane等,这些组件具有更好的性能和可定制性。 1. **组件的使用** - JButton:用于创建可点击的...

    JAVA JTREE JTABLE实例代码

    这些代码可能涵盖了更复杂的功能,比如自定义渲染器、拖放操作、数据绑定等,学习这些代码可以帮助开发者更好地理解和应用JTree和JTable在实际项目中的各种用法。 总之,JTree和JTable是Java GUI编程中不可或缺的...

    JAVA_Swing 学习经典例子

    本资源“JAVA_Swing 学习经典例子”是一个包含各种Swing功能实现的代码集合,适用于不同水平的开发者学习和参考。 Swing 提供了大量可定制的组件,如按钮、文本框、菜单、滚动面板等,这些组件都是轻量级的,不依赖...

    Java swing 知识总结学习笔记

    ### Java Swing 知识总结学习笔记 #### 一、Swing 概述 Swing 是一个用于构建桌面应用程序的 Java 图形用户界面 (GUI) 工具包,它基于 Java Abstract Window Toolkit (AWT) 构建而成。Swing 提供了更丰富的组件集...

    swing例子学习资料

    这个“swing例子学习资料”很可能是为了帮助开发者深入理解和熟练运用Swing进行GUI开发而准备的一系列示例代码和教程。 Swing的特点之一是它使用轻量级组件,这意味着它们主要由Java代码实现,而不是依赖于操作系统...

    java 中 Jtable的用法

    ### Java中的JTable用法详解 #### 一、概述 JTable是Swing框架中用于显示和编辑表格数据的关键组件之一。它不仅提供了强大的数据管理功能...通过对JTable的学习和实践,开发者可以轻松创建出满足各种需求的表格界面。

    学会JTable的使用

    在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示数据集。它是Swing的`javax.swing.JTable`类,允许用户查看和编辑表格形式的数据。本教程将详细介绍如何学习并有效利用`JTable`来创建用户...

    JTable示例

    它是`javax.swing.JTable`类的一个实例,提供了一个灵活且功能丰富的用户界面,允许用户查看和编辑二维数据集。本示例将深入探讨`JTable`的使用,这对于初学者理解和掌握Java GUI编程至关重要。 ### 1. 创建JTable ...

    Java JTree+JTable应用

    在Java Swing库中,`JTree`和`JTable`是两种非常重要的组件,用于创建用户界面。`JTree`通常用于展示层次化的数据...通过这个示例,开发者可以学习到如何有效地组合和使用Swing组件,以创建功能丰富的图形用户界面。

Global site tag (gtag.js) - Google Analytics