尊重Question!通过abg和回答mKorBel。
使用J2 Auto Complete Combo Box!
答案中的代码由mKorBel For My Case在下面的代码中有另一个问题,当我编辑第三行时,它工作正常,但当我点击第一行进行编辑时,它将第一行的值设置为选定的第3行行。
comboBox.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JComboBox comboBox = (JComboBox) e.getSource();
String itemStr= comboBox.getSelectedItem().toString();
int selectedRowLocal= tblDetailInfoParts.getSelectedRow();
if (selectedRowLocal != -1)
{
if ((itemStr != null) && (itemStr.compareTo("") != 0) )
{
tblDetailInfoParts.setValueAt(itemStr, selectedRowLocal, 15);
}
}
}
});
答案 0 :(得分:1)
我没有添加动作侦听器到comboBox(即添加到JTable),而是添加了Rob Camick's Table Cell Listener!在我添加comboBox的单元格中,我听了改变,这对我来说非常有效。 (我之前关于Java2s自动完成组合框的问题的评论指出 @mKorbel )
private void formWindowOpened(java.awt.event.WindowEvent evt)
{
AddingPartsChangeEvent();
}
My Table Cell Listener To My JTable的代码如下
private void addingPartsChangeEvent()
{
Action actionProd = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
try
{
boolean newChk = false;
TableCellListener tcl = (TableCellListener) e.getSource();
int selectedRow = tcl.getRow();
int selectedCol = tcl.getColumn();
if (selectedCol == 4)
{
Object partO = tcl.getNewValue();
String design = null;
String partStr = partO.toString();
tblDetailInfoParts.setValueAt(partStr,selectedRow, 15) ;
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
};
TableCellListener tclProd = new TableCellListener(tblDetailInfoParts,
actionProd);
}