-------------------------
import javax.swing.*;
import groovy.swing.SwingBuilder;
import javax.swing.table.*;
import javax.swing.event.*;
import java.awt.event.*;
def data =[
[nick: 'MrG', full: 'Guillaume Laforge'],
[nick: 'jez', full: 'Jeremy Rayner'],
[nick: 'fraz', full: 'Franck Rasolo'],
[nick: 'sormuras', full: 'Christian Stein'],
[nick: 'blackdrag', full: 'Jochen Theodorou'],
[nick: 'Mittie', full:true]
]
def swing = new SwingBuilder();
def frame = swing.frame(title: 'Table Demo', defaultCloseOperation: JFrame.DISPOSE_ON_CLOSE) {
vbox {
scrollPane {
tab = table {
editing: true;
model = tableModel(list: data) {
propertyColumn(header: 'Nickname', propertyName: 'nick');
propertyColumn(header: 'Full Name', propertyName: 'full',editable:false);
}
}
}
button() {
action(name: '打印model的内容') {
println(model.rows);
//println(tab.cellEditor.getTableCellEditorComponent());
//println(tab.editorComponent);
}
}
}
}
frame.pack();
frame.show();
//model.getRows().add([nick:'李',full:'李某某']);
model.rows.add([nick: '李', full: '李某某']);
tab.updateUI();
//model.rows.clear();
//tab.updateUI();
/*
tab.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent event) {
println event;
}
}
);
model.addTableModelListener(
new TableModelListener() {
public void tableChanged(TableModelEvent event) {
println event;
println "yes";
}
}
)
*/
//监听JTable的鼠标事件
/*
tab.addMouseListener(
new MouseAdapter() {
public void mouseClicked(MouseEvent event) {
//println event;
//groovy.inspect.swingui.ObjectBrowser.inspect(event);
//println "yes";
def tab = event.component;
tab.setValueAt(!tab.getValueAt(tab.getSelectedRow(), tab.getSelectedColumn()), tab.getSelectedRow(), tab.getSelectedColumn());
tab.updateUI();
}
}
);
*/
/*
//监听JTable的键盘事件
tab.addKeyListener(
new KeyAdapter() {
public void keyPressed(KeyEvent event) {
//groovy.inspect.swingui.ObjectBrowser.inspect(event);
}
}
);
*/
propertyColumn(header: 'Full Name'
, propertyName:
'full'
,editable:
false
);
-------------------------
fieldsTable = table() {
//editing:true;
//tableColumn(headerValue: "字段名");
//tableColumn(headerValue: "类型");
fieldsTableModel = tableModel(list: data) {
propertyColumn(header: "字段名", propertyName: "field", editable: false);
propertyColumn(header: "类型", propertyName: "type", editable: false);
propertyColumn(header: "可见", propertyName: "visible", editable: false);
//tableModel(list:[[field:"auto_id",type:'int']]);
closureColumn (
header: 'Location',
read: {row -> println row;return 1;},
write: {row, newValue -> println "write: $row new value: $newValue"}
)
}
}
-------------------------
分享到:
相关推荐
当我们需要在JTable中实现用户交互,比如选中某一行并进行编辑时,通常会涉及到几个关键概念和技术。以下是对这些知识点的详细解释: 1. **JTable的创建与基本用法**:JTable是javax.swing.JTable类的实例,它基于...
作者自己实现了一个单元格监听器 TableCellListener,它订阅了指定 table 的 addPropertyChangeListener,根据 e.getPropertyName() 来识别单元格编辑事件,根据 table.isEditing() 方法来判断单元格正在编辑还是...
JTable使用 JTable使用JTable使用JTable使用
在Java编程环境中,`JTable`是Swing库中的一个核心组件,用于展示二维数据集,通常用于创建表格视图。这个组件对于用户界面(UI)设计尤其重要,尤其是在需要显示和编辑数据库或其他数据源数据时。下面我们将深入...
3.使用JTable+TableModel展示java中的数据对象 2.JTable展示方式的美化 1.设置表格的宽度和高度 2.要显示表头 3.新加列,将列设为下拉框 4.表格排序 3. JTable事件响应和项目设想 4.一个游戏:《java连连看》 1.需求...
- 如果需要对用户在JTable中的操作做出响应,如编辑、删除等,可以添加各种监听器,如`TableCellEditor`、`TableCellRenderer`、`TableRowSorter`等。 8. **性能优化**: - 当处理大量数据时,可能需要考虑分批...
在"swing中JTable的简单使用"这个主题中,我们将深入探讨如何在Java Swing应用中有效地使用JTable。 首先,JTable是javax.swing.JTable类的实例,它是JFrame或JPanel等容器中的一个组件。JTable通常与TableModel...
在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示数据集。它是Swing的`javax.swing.JTable`类,允许用户查看和编辑表格形式的数据。本教程将详细介绍如何学习并有效利用`JTable`来创建用户...
在Java中,JTable是一个常用的表格控件,用于显示和编辑表格数据。然而,在JTable中加入复选框是一个常见的需求,但是却不是那么容易实现。本文将介绍JTable中加入复选框的两种方法,并对每种方法进行详细的解释。 ...
在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据表格。当我们需要在`JTable`中实现更复杂的交互,比如在一个单元格内放置多个按钮时,这通常涉及到自定义`TableCellRenderer`和`TableCellEditor`...
**jTable是Java Swing库中的一个组件,用于在应用程序中展示和操作表格数据。它提供了丰富的功能,包括数据编辑、排序、过滤以及自定义显示等。深入学习jTable的使用,能够帮助开发者创建用户友好的界面,使得数据的...
JTable是Swing GUI中用于显示和编辑表格数据的重要组件,它提供了丰富的功能,包括添加、删除和修改表格中的行。下面将详细介绍这个例子中的关键知识点: 1. **JTable的基本用法**: JTable是基于...
在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示二维数据。它是基于模型-视图-控制器(MVC)架构设计的,使得数据操作变得灵活且易于管理。本篇文章将深入探讨`JTable`如何操作单元格、行...
* 删除操作:使用 deleteRow() 方法可以删除一行数据从模型中。 * 保存操作:使用 saveRow() 方法可以保存一行数据到模型中。 * 获取操作:使用 getRow() 方法可以获取一行数据从模型中。 ChangeList 在 ...
在Java的Swing库中,JTable是一种非常重要的组件,用于展示二维数据表格。而将多个Button放入JTable的同一单元格中,可以提供更丰富的交互性,这在某些复杂的应用场景下是必要的。本教程将详细介绍如何在JTable中...
在Java Swing编程中,JTable是一个不可或缺的组件,用于展示二维数据并允许用户进行交互。它提供了丰富的功能,包括数据的显示、编辑以及对行和列的操作。以下是对JTable常用操作的详细说明: **一、创建表格控件**...
在Java的Swing库中,`JTable`是用于创建数据网格视图的重要组件,它允许用户以表格的形式查看和操作数据。而`JButton`则是一个常用的按钮控件,通常用于触发某些动作或事件。将`JButton`添加到`JTable`中可以为用户...
在`tabletest1`这个文件中,可能包含了实现上述步骤的代码,以及可能的额外功能,如监听表格事件(例如行选择、单元格编辑等)或者自定义单元格渲染。`JTable`还支持许多高级特性,如排序、过滤、表格列的动态调整等...
JTable是Java Swing库中的一个组件,用于在应用程序中显示和编辑表格数据。它提供了丰富的功能,包括排序、选择、编辑单元格以及自定义外观。这篇文章可能涵盖了作者在理解和使用JTable过程中遇到的问题及解决方法。...
jtable 提供丰富的定制选项,如自定义主题、操作列、事件监听等,可以满足不同项目的需求。同时,通过扩展插件或自定义功能,可以进一步增强 jtable 的功能。 总结,jtable 是一个功能强大且易于使用的 jQuery 插件...