/**

*

*

Title:[FileFieldEditor]

*

Description: [JTable可编辑]

*

Copyright 2009 Upengs Co., Ltd.

*

All right reserved.

*

Created by [Huyvanpull] [2012-12-6]

*

Midified by [modifier] [modified time]

*

* @version 1.0

*/

@SuppressWarnings("serial")

public class FileFieldEditor extends JComboBox implements TableCellEditor

{

/** EventListenerList:保存EventListener 列表的类 */

private EventListenerList listenerList = new EventListenerList();

/** ChangeEvent用于通知感兴趣的参与者事件源中的状态已发生更改 */

private ChangeEvent changeEvent = new ChangeEvent(this);

/**

*

*

Description:[构造方法]

*

*/

public FileFieldEditor(String[] fileFields)

{

super();

for(String fileField : fileFields)

{

this.addItem(fileField);

}

// 请求终止编辑操作可以包含单元格的JTable收到,也可以从编辑器组件本身(如这里的JComboBox)获得

/*

* addActionListener(newActionListener(){ publicvoid

* actionPerformed(ActionEvent e) {

* System.out.println("ActionListener");

* //如同stopCellEditing,都是调用fireEditingStopped()方法 fireEditingStopped(); }

* });

*/

}

public void addCellEditorListener(CellEditorListener l)

{

listenerList.add(CellEditorListener.class, l);

}

public void removeCellEditorListener(CellEditorListener l)

{

listenerList.remove(CellEditorListener.class, l);

}

private void fireEditingStopped()

{

CellEditorListener listener;

Object[] listeners = listenerList.getListenerList();

for (int i = 0; i < listeners.length; i++)

{

if (listeners[i] == CellEditorListener.class)

{

// 之所以是i+1,是因为一个为CellEditorListener.class(Class对象),

// 接着的是一个CellEditorListener的实例

listener = (CellEditorListener) listeners[i + 1];

// 让changeEvent去通知编辑器已经结束编辑

// 在editingStopped方法中,JTable调用getCellEditorValue()取回单元格的值,

// 并且把这个值传递给TableValues(TableModel)的setValueAt()

listener.editingStopped(changeEvent);

}

}

}

public void cancelCellEditing()

{}

/**

* 编辑其中一个单元格,再点击另一个单元格时,调用。

*/

public boolean stopCellEditing()

{

// 可以注释掉下面的fireEditingStopped();然后在GenderEditor的构造函数中把

// addActionListener()的注释去掉(这时请求终止编辑操作从JComboBox获得),

// System.out.println("编辑其中一个单元格,再点击另一个单元格时,调用。");

// 请求终止编辑操作从JTable获得

fireEditingStopped();

return true;

}

/**

* 为一个单元格初始化编辑时,getTableCellEditorComponent被调用

*/

public Component getTableCellEditorComponent(JTable table, Object value,

boolean isSelected, int row, int column)

{

String s = String.valueOf(value);

setSelectedItem(s);

return this;

}

/**

* 询问编辑器它是否可以使用 anEvent 开始进行编辑。

*/

public boolean isCellEditable(EventObject anEvent)

{

return true;

}

/**

* 如果应该选择正编辑的单元格,则返回true,否则返回 false。

*/

public boolean shouldSelectCell(EventObject anEvent)

{

return true;

}

/**

* 返回值传递给TableValue(TableModel)中的setValueAt()方法

*/

public Object getCellEditorValue()

{

return this.getSelectedItem().toString();

}

}

posted on 2012-12-08 23:12 HUIKK 阅读(459) 评论(0)  编辑  收藏 所属分类: Java

java jtable 编辑_JTable可编辑相关推荐

  1. java jtable用法_JTable用法-实例

    前几篇文章介绍了JTable的基本用法,本文实现一个简单的JTable,算是前文的一个总结,并造福供拷贝党们. 一.主要功能 1.数据的增删改: 2.渲染器:"Vegetarian" ...

  2. java jtable 分页_Jtable分页查询完整实现

    使用数据库:mysql 实现效果: 界面实现说明: 初始化时,默认显示为第一页,首页与上一页按钮会被禁用: 当前为第x页/共y页内容当中,x与y是动态计算设置的: 翻页到最后一页时,下一页与末页按钮会 ...

  3. 学习日报 day02 java的语法骨架 myeclipse编辑java代码

    学习日报 day02 java的语法骨架 myeclipse编辑java代码 https://cloud.189.cn/t/3MJrm2MRNBRf 开发前的基本知识 java环境名词解释 JRE J ...

  4. java计算机毕业设计工作流流程编辑OA系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计工作流流程编辑OA系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计工作流流程编辑OA系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: ...

  5. 利用UE简化JAVA后端的SQL语句编辑

    利用UE简化JAVA后端的SQL语句编辑 在我们需要用Java编辑较长的SQL时,例如下面一段SQL比较冗长 select b.PARA_AC, b.PARA_AD, a.* from (select ...

  6. java jtable 添加表头_JTable的表头合并

    JTableHeader的单个表头最复杂的操作也就是Renderer渲染和Editor编辑,然后增加事件处理和悬浮框提示,最多再加点特殊显示效果,这和JTable单元格的操作相同,在前面的例子里都已经 ...

  7. Android中控件的显示和隐藏以及EditText的可编辑和不可编辑状态

    一.控件的显示和隐藏 在Android中,怎么让控件可见和不可见呢? 其实,不论是显示和隐藏,都有两种方式,一种是在布局文件xml里设置,还有一种就是在我们的java代码中设置. 1. 可见(visi ...

  8. mapgis编辑属性结构编辑不了_MapGIS67操作手册(3-17)MapGIS67编辑线属性结构的方法...

    下面我们给每条河流,添加对应的名称属性,如黄河.长江等. 1. 单击"线编辑"菜单下"参数编辑"下的"修改线属性"命令,如下图所示: 2. ...

  9. android照片编辑软件,照片编辑免费软件下载-照片编辑软件app下载 v7.45最新版_5577安卓网...

    照片编辑免费软件app下载,提供给你全新的图片处理工具,这是软件包含了丰富的功能内容,软件一键即可轻松对各种照片組合.编辑和拼貼,那么有需要图片处理的用户下载该app使用吧! [软件特色] [ 拼图编 ...

最新文章

  1. 如何在sqlite3连接中创建并调用自定义函数
  2. 开课吧python学费-分享一个小白也能月赚2万的新技能
  3. SizeOf与Structure与Managed Code
  4. 2020 操作系统第四天复习(知识点总结)
  5. 中国大数据企业排行榜V6.0- 5 年后再去看看中几个大数据公司的发展状况
  6. (附)python3 只需3小时带你轻松入门——python常用一般性术语或词语的简单解释
  7. 华为麒麟990芯片发布;谷歌宣布开源创新隐私保护技术;阿里20亿美元全资收购网易考拉;中国联通将设立100亿5G创新基金……...
  8. 在MacBook上Jupyter安装
  9. 编程语言对比 迭代器
  10. 判断用户用手机访问还是用电脑访问网页
  11. 深度搜索 java_java实现的深度搜索与广度搜索算法BFS,DFS以及几种最短路径算法...
  12. AI一周热闻:北大建立人工智能新校区;英国首例机器人心脏手术致死
  13. 数据库设计实例(以一张表为例)
  14. 监控网页的卡顿与崩溃
  15. Maven 中的cannot Resolve情况
  16. chrome浏览器扩展打包成crx
  17. 关于微信小程序·小程序云开发字段搜索
  18. 一、多线程是什么?为什么要用多线程?
  19. 远程计算机IP地址如何获取,获取远程主机的IP地址
  20. Java抽取Office、PDF的四件兵器

热门文章

  1. MATLAB函数图形绘制
  2. 概率图模型学习笔记:HMM、MEMM、CRF
  3. 前端如何实现词云效果?
  4. JS把反斜杠\转换成正斜杠/
  5. Axure之倒计时简单实现
  6. 批量3U 16盘位SAS JBOD磁盘存储阵列系统~级联可接240个硬盘!
  7. (C/C++)图形界面库EasyX库(graphics.h)的下载与安装
  8. 计算机键盘功能教案,计算机基础教案2(键盘鼠标操作).doc
  9. JAVA|时钟类Clock
  10. teamcenter快速入门