【发布时间】:2012-11-10 10:31:22
【问题描述】:
参考Question!由 abg 和由 mKorBel 回答。
并使用 J2s Auto Complete Combo Box!
mKorBel For My Case 的答案中的代码在以下代码中存在另一个问题,当我编辑第三行时它工作正常,但是当我单击第一行进行编辑时,它将第一行的值设置为选定的第三行行。
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);
}
}
}
});
【问题讨论】:
-
仍然无法正确格式化您的代码?请加倍努力......并记住:这个论坛格式化软件不喜欢标签:-)
-
至于你的问题:为什么坚持使用未维护的过时的 - 在侏罗纪的范围内 - 代码示例?自动完成并非易事......所以使用像 f.i 这样的现代、维护良好的实现。 SwingX
-
我在最后一个问题中提到了我尝试过 SwingX 但我的主要要求没有满足,当我输入字符时,长列表没有被过滤,这个问题被 mKorbel 接受,他建议这个解决方案我的问题。
-
“过滤”是什么意思?无论如何,请注意,如果您想使用 swingX 自动完成作为编辑组件,您需要使用 ComboBoxCellEditor 而不是核心。
-
@kleopatra 基本上,当您键入时,匹配项在下拉列表中被选中,而不是列表被过滤以仅显示匹配结果 - 这是我们选择不使用它的原因之一
标签: java swing autocomplete jtable jcombobox