首页>代码>java swing JTable的中级应用>/SwingComponents/src/com/learn/swing/jtable/celleditor/EditorTableTest.java
package com.learn.swing.jtable.celleditor; import java.text.SimpleDateFormat; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import com.learn.swing.jtable.abstracttablemodel.TableValues; import com.learn.swing.jtable.cellrenderer.GenderRenderer; import com.learn.swing.jtable.datepicker.TableDatePicker; /** * GenderEditor类的工作流程: 1)、调用TableCellEditor接口中的getTableCellEditorComponent()方法初始化编辑 2)、编辑当前的单元格,再点击另一个单元格时,调用CellEditor中的stopCellEditing(),通过fireEditingStopped()调用到editingStopped()。 3)、在editingStopped方法中,JTable调用getCellEditorValue()取回单元格的值,并且把这个值传递给TableValues(TableModel)的setValueAt() * @author Administrator * 方法调用顺序: * isCellEditable * getTableCellEditorComponent * addCellEditorListener * shouldSelectCell * stopCellEditing * getCellEditorValue --> TableModel.setValueAt() * removeCellEditorListener * fireEditingStopped */ @SuppressWarnings("serial") public class EditorTableTest extends JFrame{ public EditorTableTest(){ setTitle("TableCellEditor"); //添加表格数据 TableValues tv = new TableValues(); JTable table= new JTable(tv); table.setRowHeight(30); TableColumnModel columnModel = table.getColumnModel(); //获取“性别”列 TableColumn genderColumn = columnModel.getColumn(TableValues.getGender()); //获取“生日”列 TableColumn birthColumn = columnModel.getColumn(TableValues.getBirth()); //设置“性别”列的单元格渲染器(renderer) genderColumn.setCellRenderer(new GenderRenderer()); //设置“性别”列的单元格编辑器(editor) genderColumn.setCellEditor(new GenderEditor()); //设置“生日”列的单元格编辑器(日期格式在初始化时起作用) birthColumn.setCellEditor(new TableDatePicker(new SimpleDateFormat("yyyy-MM-dd"))); //必须把table放入JScrollPane才会有列名出现 JScrollPane jsp = new JScrollPane(table); getContentPane().add(jsp); } public static void main(String[] args) { EditorTableTest stt = new EditorTableTest(); stt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); stt.setSize(400,300); stt.setVisible(true); stt.setLocationRelativeTo(null); } }
最近下载更多
wyx065747 LV67
2022年4月7日
Demo1111 LV30
2021年12月12日
一个好人520 LV10
2021年9月29日
yangctz LV24
2021年9月10日
ysc123 LV5
2021年7月8日
香菇肉饼汤 LV8
2020年5月21日
上善_若水 LV3
2020年2月19日
liaozhensy LV1
2019年7月18日
yongzheng132 LV17
2019年6月21日
ty93pical LV2
2019年4月22日
最近浏览更多
1219610676 LV4
2023年12月7日
ezra77934 LV2
2023年9月16日
hufuman LV23
2023年4月6日
漫步的海星 LV4
2023年3月16日
2252536772 LV21
2022年11月9日
lcb813 LV1
2022年7月1日
a318888331 LV13
2022年5月30日
忧麦紫 LV18
2022年3月2日
zkingzz
2021年12月21日
暂无贡献等级
Demo1111 LV30
2021年12月12日