自定义的ComboBoxCellEditor类
来源:互联网 发布:ubuntu怎么查看显卡 编辑:程序博客网 时间:2024/05/16 19:41
import javax.swing.JComboBox;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import java.awt.Dimension;
import javax.swing.table.TableCellEditor;
import java.util.EventObject;
import javax.swing.event.CellEditorListener;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.event.EventListenerList;
import javax.swing.event.ChangeEvent;
/** *//**
*
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: wri</p>
*
* @author tang08
* @version 1.0
*/
public class ComboBoxCellEditor
extends JComboBox implements TableCellEditor ...{
protected EventListenerList listenerList = new EventListenerList();
protected ChangeEvent changeEvent = new ChangeEvent(this);
private DefaultComboBoxModel model = new DefaultComboBoxModel();
public ComboBoxCellEditor() ...{
super();
this.setPreferredSize(new Dimension(80, 25));
this.setModel(model);
}
/** *//**
* 设置初始值
* @param value Object
*/
public void setValue(Object value) ...{
if (model.getSize() > 0) ...{
model.removeAllElements();
}
if (value != null) ...{
if (value instanceof String) ...{
model.addElement(value);
return;
}
List list = (List) value;
for (int i = 0; i < list.size(); i++) ...{
model.addElement(list.get(i));
}
this.setSelectedIndex(0);
}
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row,
int column) ...{
if (value == null) ...{
String select = (String)this.getSelectedItem();
setSelectedItem(select);
return this;
}
setSelectedItem(value);
return this;
}
/** *//**
* 获得设置数据值
* @return Object
*/
public Object getValue() ...{
return this.getSelectedItem();
}
public void setEnable(boolean enable) ...{
super.setEnabled(enable);
}
public Object getCellEditorValue() ...{
return (String)this.getSelectedItem();
}
public boolean isCellEditable(EventObject anEvent) ...{
return true;
}
public boolean shouldSelectCell(EventObject anEvent) ...{
return true;
}
public boolean stopCellEditing() ...{
fireEditingStopped();
return true;
}
public void cancelCellEditing() ...{
fireEditingCanceled();
}
public void addCellEditorListener(CellEditorListener l) ...{
listenerList.add(CellEditorListener.class, l);
}
public void removeCellEditorListener(CellEditorListener l) ...{
listenerList.remove(CellEditorListener.class, l);
}
/** *//**
* fireEditingStopped
*/
protected void fireEditingStopped() ...{
CellEditorListener listener;
Object[] listeners = listenerList.getListenerList();
for (int i = 0; i < listeners.length; i++) ...{
if (listeners[i] == CellEditorListener.class) ...{
listener = (CellEditorListener) listeners[i + 1];
listener.editingStopped(changeEvent);
}
}
}
protected void fireEditingCanceled() ...{
CellEditorListener listener;
Object[] listeners = listenerList.getListenerList();
for (int i = 0; i < listeners.length; i++) ...{
if (listeners[i] == CellEditorListener.class) ...{
listener = (CellEditorListener) listeners[i + 1];
listener.editingCanceled(changeEvent);
}
}
}
}
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import java.awt.Dimension;
import javax.swing.table.TableCellEditor;
import java.util.EventObject;
import javax.swing.event.CellEditorListener;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.event.EventListenerList;
import javax.swing.event.ChangeEvent;
/** *//**
*
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: wri</p>
*
* @author tang08
* @version 1.0
*/
public class ComboBoxCellEditor
extends JComboBox implements TableCellEditor ...{
protected EventListenerList listenerList = new EventListenerList();
protected ChangeEvent changeEvent = new ChangeEvent(this);
private DefaultComboBoxModel model = new DefaultComboBoxModel();
public ComboBoxCellEditor() ...{
super();
this.setPreferredSize(new Dimension(80, 25));
this.setModel(model);
}
/** *//**
* 设置初始值
* @param value Object
*/
public void setValue(Object value) ...{
if (model.getSize() > 0) ...{
model.removeAllElements();
}
if (value != null) ...{
if (value instanceof String) ...{
model.addElement(value);
return;
}
List list = (List) value;
for (int i = 0; i < list.size(); i++) ...{
model.addElement(list.get(i));
}
this.setSelectedIndex(0);
}
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row,
int column) ...{
if (value == null) ...{
String select = (String)this.getSelectedItem();
setSelectedItem(select);
return this;
}
setSelectedItem(value);
return this;
}
/** *//**
* 获得设置数据值
* @return Object
*/
public Object getValue() ...{
return this.getSelectedItem();
}
public void setEnable(boolean enable) ...{
super.setEnabled(enable);
}
public Object getCellEditorValue() ...{
return (String)this.getSelectedItem();
}
public boolean isCellEditable(EventObject anEvent) ...{
return true;
}
public boolean shouldSelectCell(EventObject anEvent) ...{
return true;
}
public boolean stopCellEditing() ...{
fireEditingStopped();
return true;
}
public void cancelCellEditing() ...{
fireEditingCanceled();
}
public void addCellEditorListener(CellEditorListener l) ...{
listenerList.add(CellEditorListener.class, l);
}
public void removeCellEditorListener(CellEditorListener l) ...{
listenerList.remove(CellEditorListener.class, l);
}
/** *//**
* fireEditingStopped
*/
protected void fireEditingStopped() ...{
CellEditorListener listener;
Object[] listeners = listenerList.getListenerList();
for (int i = 0; i < listeners.length; i++) ...{
if (listeners[i] == CellEditorListener.class) ...{
listener = (CellEditorListener) listeners[i + 1];
listener.editingStopped(changeEvent);
}
}
}
protected void fireEditingCanceled() ...{
CellEditorListener listener;
Object[] listeners = listenerList.getListenerList();
for (int i = 0; i < listeners.length; i++) ...{
if (listeners[i] == CellEditorListener.class) ...{
listener = (CellEditorListener) listeners[i + 1];
listener.editingCanceled(changeEvent);
}
}
}
}
- 自定义的ComboBoxCellEditor类
- swt comboBoxCelleditor 的使用
- 关于JFace的TableViewer中引入ComboBoxCellEditor 快速双击对于Cell Combo无法展开问题的解决
- 类的自定义事件
- 自定义的string类
- 自定义类的加载
- 自定义的单元测试类
- 自定义表单的类
- 自定义的字符串类
- 自定义类的前缀
- 自定义的异常类
- 自定义类的比较
- 自定义的email发送类
- 自定义的email发送类
- 自定义的匿名管道类
- 自定义异常类的使用...
- 自定义类的数组排序
- 创建自定义的dialog类
- C语言
- 用JSF实现依赖注入
- 正则表达式
- AIX上vim的语法高亮
- Samba服务器的配置及使用
- 自定义的ComboBoxCellEditor类
- 终于了一件事,租房
- 在LINUX环境中配置WU-FTP服务器
- ArcSDE中间件技术的生命力
- BDhelper数据库操作类
- Linux+Apache+Mysql+PHP典型配置
- DataGrid的自动分页功能
- Apache XML-RPC与vcXMLRPC实现ajax调用web service
- 用iframe实现的网页局部刷新