JTable指定单元格加控件
来源:互联网 发布:python zip 编辑:程序博客网 时间:2024/04/29 01:03
JTable可以给表格的某一列加入控件,下面方法可以实现
try{
TableColumn column = jTable.getColumn(colName);
column.setCellEditor(new DefaultCellEditor(new JComboBox()));
}catch(IllegalArgumentException ex){
}
或者
TableColumn column = JTable.getColumnModel().getColumn(int column);
column.setCellEditor(new DefaultCellEditor(new JComboBox()));
TableColumn column = jTable.getColumn(colName);
column.setCellEditor(new DefaultCellEditor(new JComboBox()));
}catch(IllegalArgumentException ex){
}
或者
TableColumn column = JTable.getColumnModel().getColumn(int column);
column.setCellEditor(new DefaultCellEditor(new JComboBox()));
下面这个类可以帮助我们在表格的某一个指定的单元格实现下拉列表效果
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.EventObject;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.EventListenerList;
import javax.swing.table.TableCellEditor;
public class ComboBoxCellEditor extends JComboBox implements TableCellEditor...{
protected EventListenerList listenerList = new EventListenerList();
protected ChangeEvent changeEvent = new ChangeEvent(this);
public ComboBoxCellEditor() ...{
super();
addItem("日");
addItem("月");
addActionListener(new ActionListener() ...{
public void actionPerformed(ActionEvent event) ...{
fireEditingStopped();
}
});
}
public void addCellEditorListener(CellEditorListener listener) ...{
listenerList.add(CellEditorListener.class, listener);
}
public void removeCellEditorListener(CellEditorListener listener) ...{
listenerList.remove(CellEditorListener.class, listener);
}
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);
}
}
}
public void cancelCellEditing() ...{
fireEditingCanceled();
}
public boolean stopCellEditing() ...{
fireEditingStopped();
return true;
}
public boolean isCellEditable(EventObject event) ...{
return true;
}
public boolean shouldSelectCell(EventObject event) ...{
return true;
}
public Object getCellEditorValue() ...{
return getSelectedItem();
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) ...{
return this;
}
}
客户端调用上述代码,可以实现在表格第一行第二列的单元格内加入下拉列表
JTable table = new JTable()...{
@Override
public TableCellEditor getCellEditor(int row, int column) ...{
// TODO Auto-generated method stub
if(row ==1 && column == 2)...{
return new ComboBoxCellEditor();
}
return super.getCellEditor(row, column);
}
};
@Override
public TableCellEditor getCellEditor(int row, int column) ...{
// TODO Auto-generated method stub
if(row ==1 && column == 2)...{
return new ComboBoxCellEditor();
}
return super.getCellEditor(row, column);
}
};
- JTable指定单元格加控件
- 设置java中JTable单元格指定文字颜色
- 关于JTable单元格自定义控件的简单示例
- jtable单元格的扩展
- JTable合并单元格
- jtable 单元格 添加 提示
- swing jTable 自定义单元格
- JTable单元格添加按钮
- 自定义JTable单元格
- JTable 保存单元格内容
- java swing jtable 给指定的(一个或多个)单元格设置背景色
- Java Swing JTable 表格【12:为表格的单元格指定文字说明】
- Android控件指定方向加边框
- JTABLE加滚动条
- jTable设置单元格不可编辑
- JTable 单元格多行显示
- 具有不同颜色单元格的JTable
- JTable单元格只能输入数字
- 未读完的帖子
- 2008.2.29
- 选股秘诀:如何选中次日大涨股
- 驱动加载顺序
- 怎么选能涨的股票
- JTable指定单元格加控件
- 波段炼金秘诀
- 驱动加载顺序
- xiaobao的日志 >>UltraEdit 使用技巧 积累
- 什么是野指针?
- 隐藏gridview第一列 和 设置日期格式
- 圆盘问题
- DLL专题之MFC规则库和扩展库
- Windows VC6编译安装Boost库