在Java中,如何为同一数据类型在两个不同的列中设置一个单元格编辑器?
In Java, how do I set a cell Editor in two different columns for the same data type?
这是我的第一个问题,因为我是 Java 的小菜鸟,所以如果这是一个微不足道的问题,我深表歉意,但我找不到任何关于它的信息......
我的问题是:我有一个 Java 摆动姿势,Jtable。我用 table 模型填充了 table 并使用 table 渲染器来显示我想要的。
table 有 3 列:
col-0 = Object
col-1 = Date (just date)
col-2 = Date (just time).
我已经成功地为日期类型设置了编辑器 (jCalendar),但我希望第 1 列有一个 JCalendar(没问题),但在第 2 列, 我想插入一个 JSpinner 来介绍时间。
有没有办法为相同的数据类型设置不同的单元格编辑器(在我的例子中是日期)?
您可以在您的自定义 TableRenderer
中覆盖方法 getTableCellRendererComponent
,然后,通过检查列号您可以选择要 return 的组件。
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)
{
if(column == 1){
return new JCalendar();
}else if(column == 2){
return new JSpinner(2015,07,31);
}else{
return super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
}
}
Is there a way to have different cell editors for the samer data type (in my case is Date) ?
您将编辑器添加到 TableColumnModel
的特定列:
table.getColumnModel().getColumn(???).setCellEditor(???);
这是我的第一个问题,因为我是 Java 的小菜鸟,所以如果这是一个微不足道的问题,我深表歉意,但我找不到任何关于它的信息......
我的问题是:我有一个 Java 摆动姿势,Jtable。我用 table 模型填充了 table 并使用 table 渲染器来显示我想要的。
table 有 3 列:
col-0 = Object
col-1 = Date (just date)
col-2 = Date (just time).
我已经成功地为日期类型设置了编辑器 (jCalendar),但我希望第 1 列有一个 JCalendar(没问题),但在第 2 列, 我想插入一个 JSpinner 来介绍时间。
有没有办法为相同的数据类型设置不同的单元格编辑器(在我的例子中是日期)?
您可以在您的自定义 TableRenderer
中覆盖方法 getTableCellRendererComponent
,然后,通过检查列号您可以选择要 return 的组件。
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)
{
if(column == 1){
return new JCalendar();
}else if(column == 2){
return new JSpinner(2015,07,31);
}else{
return super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
}
}
Is there a way to have different cell editors for the samer data type (in my case is Date) ?
您将编辑器添加到 TableColumnModel
的特定列:
table.getColumnModel().getColumn(???).setCellEditor(???);