SwingBuilder中使用Jtable,例4:某一行不可编辑+事件监听
发布时间:2020-12-14 17:05:44 所属栏目:大数据 来源:网络整理
导读:------------------------- 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 Ray
------------------------- 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"} ) } }? ------------------------- (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |