我创建了一个表格,其中每行的单元格中显示一个组合框。我分别使用以下两个类作为单元格编辑器和单元格渲染器。不知何故,当显示表格时,单击单元格中的每个组合框都不会打开。谁能给我提示吗?提前致谢
public class CellEditor extends DefaultCellEditor{
private static final long serialVersionUID = 1L;
public CellEditor(String[] items) {
super(new JComboBox(items));
}
}
public class ComboBoxRenderer extends JComboBox implements TableCellRenderer {
/****/
private static final long serialVersionUID = 1L;
public ComboBoxRenderer(String[] items) {
super(items);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (isSelected) {
this.setForeground(table.getSelectionForeground());
super.setBackground(table.getSelectionBackground());
} else {
this.setForeground(table.getForeground());
this.setBackground(table.getBackground());
}
this.setSelectedItem(value);// Select the current value
return this;
}
}
最佳答案
请阅读JTable的教程,有Editors and Renderers和 Using a Combo Box as an Editor ,本论坛上的一些示例(包括 JTable 中的 AutoCompleted JComboBox)或 here或here
但基本上是你的问题,(检查你是否设置了)
public boolean isCellEditable(int row, int col) {
if (col == someInt) {
return true;
} else if (col == TableColumnsStartsWithZero) {
return true;
} else {
return false;
}
}
关于java - JComboBox 未在 jTable 中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6820446/