我在JTable單元內部有一個JComboBox渲染器(和單元格編輯器)。在JTable內設置JComboBox選定索引
我的JComboBox具有兩個項目( 「a」 和 「B」)
我想JComboBox時選擇的索引設置爲1(對應於 「B」)。
我曾嘗試讓渲染器組件,並呼籲「的setSelectedIndex(1」)
我在JTable單元內部有一個JComboBox渲染器(和單元格編輯器)。在JTable內設置JComboBox選定索引
我的JComboBox具有兩個項目( 「a」 和 「B」)
我想JComboBox時選擇的索引設置爲1(對應於 「B」)。
我曾嘗試讓渲染器組件,並呼籲「的setSelectedIndex(1」)
當你一起工作的渲染,它可以用正確的JComboBox模式工作:
String[] vls = new String[]{"a","b"};
JComboBox<String> comboBox1;
...
comboBox1.setModel(new DefaultComboBoxModel(vls));
您可以使用,當你與組合框模型的工作:
:comboBox1.getModel().setSelectedItem("b");
,或者當你沒有組合框模型的工作
comboBox1.setSelectedIndex(1);
我想將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;
}
}
我明確地希望設置索引。例如,我可用的選擇是「a」和「b」。當用戶點擊(例如)某些JButton時,我希望可見的選定選項爲「b」 – user6013878
@ user6013878,「我明確希望設置索引。」 - 無論您想要什麼都沒關係。這不是它的工作原理!你已經得到答案。如果要顯示「b」,則需要在給定單元格的TableModel中設置「b」。例如:http://stackoverflow.com/questions/43695819/setting-a-jcombobox-editor-using-tablemodellistener/43699886#43699886 – camickr
我的兩段數據(「a」和「b」)已經在數據中模型。默認情況下,顯示第一個數據字符串(「a」)。我希望顯示不同的索引(1,對應於「b」)。我相信你錯了,而且可以做到。也許你誤解了我的問題。 – user6013878
使用該組合框通過表中的所有行。您不能只設置選定的索引渲染器或編輯器將只顯示組合框中TableModel的值。 – camickr
嗨:你的答案是一個普通的JComboBox(本身)。但是,我的JComboBox是JTable中的渲染器。 – user6013878
謝謝,也許,我是不留神,我很抱歉 –