`
philix
  • 浏览: 82090 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SwingBuilder中使用Jtable,例4:某一行不可编辑+事件监听

阅读更多

-------------------------

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选中需要修改的行

    当我们需要在JTable中实现用户交互,比如选中某一行并进行编辑时,通常会涉及到几个关键概念和技术。以下是对这些知识点的详细解释: 1. **JTable的创建与基本用法**:JTable是javax.swing.JTable类的实例,它基于...

    Java Swing实现JTable检测单元格数据变更事件的方法示例

    作者自己实现了一个单元格监听器 TableCellListener,它订阅了指定 table 的 addPropertyChangeListener,根据 e.getPropertyName() 来识别单元格编辑事件,根据 table.isEditing() 方法来判断单元格正在编辑还是...

    JTable使用 JTable使用

    JTable使用 JTable使用JTable使用JTable使用

    JAVA中JTable的使用方法

    在Java编程环境中,`JTable`是Swing库中的一个核心组件,用于展示二维数据集,通常用于创建表格视图。这个组件对于用户界面(UI)设计尤其重要,尤其是在需要显示和编辑数据库或其他数据源数据时。下面我们将深入...

    JTable的使用收藏

    3.使用JTable+TableModel展示java中的数据对象 2.JTable展示方式的美化 1.设置表格的宽度和高度 2.要显示表头 3.新加列,将列设为下拉框 4.表格排序 3. JTable事件响应和项目设想 4.一个游戏:《java连连看》 1.需求...

    Excel内容复制到JTable中

    - 如果需要对用户在JTable中的操作做出响应,如编辑、删除等,可以添加各种监听器,如`TableCellEditor`、`TableCellRenderer`、`TableRowSorter`等。 8. **性能优化**: - 当处理大量数据时,可能需要考虑分批...

    swing中JTable的简单使用

    在"swing中JTable的简单使用"这个主题中,我们将深入探讨如何在Java Swing应用中有效地使用JTable。 首先,JTable是javax.swing.JTable类的实例,它是JFrame或JPanel等容器中的一个组件。JTable通常与TableModel...

    学会JTable的使用

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

    Jtable中加入复选框的两种方法

    在Java中,JTable是一个常用的表格控件,用于显示和编辑表格数据。然而,在JTable中加入复选框是一个常见的需求,但是却不是那么容易实现。本文将介绍JTable中加入复选框的两种方法,并对每种方法进行详细的解释。 ...

    Jtable 中放入多个按钮

    在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据表格。当我们需要在`JTable`中实现更复杂的交互,比如在一个单元格内放置多个按钮时,这通常涉及到自定义`TableCellRenderer`和`TableCellEditor`...

    jTable的使用

    **jTable是Java Swing库中的一个组件,用于在应用程序中展示和操作表格数据。它提供了丰富的功能,包括数据编辑、排序、过滤以及自定义显示等。深入学习jTable的使用,能够帮助开发者创建用户友好的界面,使得数据的...

    一个详细的JTable使用例子

    JTable是Swing GUI中用于显示和编辑表格数据的重要组件,它提供了丰富的功能,包括添加、删除和修改表格中的行。下面将详细介绍这个例子中的关键知识点: 1. **JTable的基本用法**: JTable是基于...

    JTable 操作单元格 行 列

    在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示二维数据。它是基于模型-视图-控制器(MVC)架构设计的,使得数据操作变得灵活且易于管理。本篇文章将深入探讨`JTable`如何操作单元格、行...

    JTable数据库基本操作多行增删改查

    * 删除操作:使用 deleteRow() 方法可以删除一行数据从模型中。 * 保存操作:使用 saveRow() 方法可以保存一行数据到模型中。 * 获取操作:使用 getRow() 方法可以获取一行数据从模型中。 ChangeList 在 ...

    jtable中放多个Button.rar

    在Java的Swing库中,JTable是一种非常重要的组件,用于展示二维数据表格。而将多个Button放入JTable的同一单元格中,可以提供更丰富的交互性,这在某些复杂的应用场景下是必要的。本教程将详细介绍如何在JTable中...

    JAVA表格控件JTable常用操作详解.doc

    在Java Swing编程中,JTable是一个不可或缺的组件,用于展示二维数据并允许用户进行交互。它提供了丰富的功能,包括数据的显示、编辑以及对行和列的操作。以下是对JTable常用操作的详细说明: **一、创建表格控件**...

    Swing中JTABLE中添加JBUTTON控件

    在Java的Swing库中,`JTable`是用于创建数据网格视图的重要组件,它允许用户以表格的形式查看和操作数据。而`JButton`则是一个常用的按钮控件,通常用于触发某些动作或事件。将`JButton`添加到`JTable`中可以为用户...

    JAVA JTable使用实例

    在`tabletest1`这个文件中,可能包含了实现上述步骤的代码,以及可能的额外功能,如监听表格事件(例如行选择、单元格编辑等)或者自定义单元格渲染。`JTable`还支持许多高级特性,如排序、过滤、表格列的动态调整等...

    jtable-弄了我一整天

    JTable是Java Swing库中的一个组件,用于在应用程序中显示和编辑表格数据。它提供了丰富的功能,包括排序、选择、编辑单元格以及自定义外观。这篇文章可能涵盖了作者在理解和使用JTable过程中遇到的问题及解决方法。...

    不错的jquery插件jtable

    jtable 提供丰富的定制选项,如自定义主题、操作列、事件监听等,可以满足不同项目的需求。同时,通过扩展插件或自定义功能,可以进一步增强 jtable 的功能。 总结,jtable 是一个功能强大且易于使用的 jQuery 插件...

Global site tag (gtag.js) - Google Analytics