小弟初做swing开发急求大神,jtable中如何在单元格中添加一个带有事件的jlabel

小弟初做swing开发急求大神,jtable中如何在单元格中添加一个带有事件的jlabel,第1张

问题拆分来看,其实就是一个渲染和表格单元格选中事件,以下代码仅做参考:

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()

}

})

关键你获取的cell对象不对,不能为component类型的对象,还有你第二种方法只是给jtable加个focus时间而已,而不是单元格时间,呵呵,好久没弄过gui了,不知道还对不对


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11940579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存