
final JComboBox comboBox = new JComboBox()
groups = new ArrayList<String>()
comboBox.setEditable(true)
TableComboBoxEditor editor = new TableComboBoxEditor(comboBox)
table.getColumnModel().getColumn(2).setCellEditor(editor)
table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (e.getType() == TableModelEvent.UPDATE &&e.getColumn() == 2) {
int lastRow = e.getLastRow()
Object value = table.getValueAt(lastRow, 2)
if (value != null &&!value.equals("") &&!groups.contains(value.toString())) {
String item = value.toString()
groups.add(item)
comboBox.addItem(item)
comboBox.setSelectedItem(item)
}
}
}
})
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
requestFocus()
}
})
你可以实现一个 TableCellRendererclass MyTableCellRenderer implements TableCellRenderer{
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
//根据特定的单元格设置不同的Renderer,假如你要在第2行第3列显示图标
if(row == 1 &&column == 2) {
ImageIcon icon = new ImageIcon("icon的位置")
JLabel label = new JLabel(icon)
label.setOpaque(false)
return label
} else {
......
......
}
}
然后把这个Renderer设置到第一列上
TableCellRenderer myRenderer = new MyTableCellRenderer()
table.getColumnModel.getColumn(2).setCellRenderer(myRenderer)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)