我在JTable单元格中有一个JComboBox渲染器(和单元格编辑器)。
我的JComboBox有两个项目(“a”和“b”)
我想将JComboBox选择的索引设置为1(对应于“b”)。
我尝试获取渲染器组件并调用“setSelectedIndex(1”)
失败了答案 0 :(得分:0)
使用渲染时,使用JComboBox模型是正确的:
String[] vls = new String[]{"a","b"};
JComboBox<String> comboBox1;
...
comboBox1.setModel(new DefaultComboBoxModel(vls));
使用ComboBox模型时可以使用:
comboBox1.getModel().setSelectedItem("b");
或者,当你没有ComboBox模型时工作:
comboBox1.setSelectedIndex(1);
答案 1 :(得分:0)
我想将JComboBox选择的索引设置为1(对应于“b”)。
您没有设置索引。
编辑器由表中的所有行共享。单元格开始编辑时,将选择组合框项目。这是自动完成的。
所以你需要做的就是将适当的数据添加到TableModel。
因此,在您创建TableModel时,需要将值“b”添加到行的TableModel中。
编辑:
我的JComboBox是JTable中的渲染器。
自定义渲染器看起来像:
class ComboBoxRenderer extends JComboBox implements TableCellRenderer
{
public ComboBoxRenderer()
{
setBorder(null);
}
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
removeAllItems();
addItem( value );
return this;
}
}