如何对把Jtable中某一行的列变成combobox形式
来源:互联网 发布:网络剧 受众群体 编辑:程序博客网 时间:2024/05/18 01:36
第一步:自定义一个类从JCombobox中继承并实现TableCellEditor 接口
package tabledemo;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.Component;
import java.util.EventObject;
import javax.swing.event.CellEditorListener;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class GenderEditor extends JComboBox implements TableCellEditor {
public GenderEditor() {
super();
addItem("张三");
addItem("萧六");
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row,
int column) {
// boolean isMale = ((Boolean) value).booleanValue();
// setSelectedIndex(isMale ? 0 : 1);
return this;
}
public void cancelCellEditing() {
}
public boolean stopCellEditing() {
return true;
}
public Object getCellEditorValue() {
return null;
}
public boolean isCellEditable(EventObject anEvent) {
return true;
}
public boolean shouldSelectCell(EventObject anEvent) {
return false;
}
public void addCellEditorListener(CellEditorListener l) {
}
public void removeCellEditorListener(CellEditorListener l) {
}
}
第二步:自定义一个类从JCombobox中继承并实现TableCellRenderer 接口
package tabledemo;
import javax.swing.JComboBox;
import javax.swing.table.TableCellRenderer;
import java.awt.Component;
import javax.swing.JTable;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class NameRenderer extends JComboBox implements TableCellRenderer {
public NameRenderer() {
super();
addItem("张三");
addItem("李四");
addItem("王五");
addItem("萧六");
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
this.setSelectedItem(value);
return this;
}
private void jbInit() throws Exception {
}
}
第三步:修改
TableColumn tc1=jTable1.getColumnModel().getColumn(0);
tc1.setCellRenderer(new NameRenderer());
JComboBox namebox=new JComboBox();
namebox.addItem("张三");
namebox.addItem("李四");
namebox.addItem("王五");
namebox.addItem("萧六");
// tc1.setCellEditor(new DefaultCellEditor(namebox));
tc1.setCellEditor(new GenderEditor());
TableColumn tc=jTable1.getColumnModel().getColumn(1);
JComboBox sexbox=new JComboBox();
sexbox.addItem("男");
sexbox.addItem("女");
tc.setCellRenderer(new SexRenderer() );
tc.setCellEditor(new DefaultCellEditor(sexbox));
- 如何对把Jtable中某一行的列变成combobox形式
- JTable中让某一列的值以tip提示的形式显示出来
- 把数据库表的某一列的数据添加到comboBox中
- JTable中向某一列添加JRadioButton
- [jtable]设置某一列的对齐方式
- 如何在JAVA中JTable获取某一行内容
- JTable列表中某一列的内容居中显示,其他列不用居中
- 【编程开发】opencv实现对Mat中某一列或某一行的元素进行normalization
- 【pandas】对矩阵的某一行、某一列进行求和
- shell如何取到文件中某一行某一列的内容
- extjs如何获取Grid中某一行某一列的值
- 【java】JTable中某一列设置为下拉列表
- Oracle如何实现对某一列的自动加一
- 如何对excel某一列的数据进行分列
- 读取datagrid中某一行某一列的值
- java JTable设置某一行的颜色
- JTable 如何设置表格的列宽
- ORACLE如何找出某一列中含有中文的记录
- 30秒清除电脑垃圾(使你电脑急速如飞)
- SQL2000 安装是的问题一
- jbuilder2006 无法启动,flash window 一闪而过 解决方法!
- 一些值得IT人一看的人生感悟
- 北京印象和一些杂想
- 如何对把Jtable中某一行的列变成combobox形式
- Qt 被我搞短路了
- 设计模式学习笔记四(Builder生成器模式)
- 用Python快速编写网站遍历程序
- 用js脚本如何动态添加带参数的事件
- XHTML DHTML SHTML到底是什么,有何区别?
- 日志处理
- 搬家了
- Vega Prime 桌面教程(五)