我試圖將JComboBox放置在JTable的某個列內。 我有這樣的代碼,它工作:JComboBox的Java JTable
model = new DefaultTableModel();
JComboBox<String> optionComboCell = new JComboBox<String>();
optionComboCell.addItem("Option 1");
optionComboCell.addItem("Option 2");
optionComboCell.setSelectedIndex(1);
table = new JTable(model);
// Adding here all the columns, removed for clarity
model.addColumn("Options");
TableColumn optionsColumn = table.getColumn("Options");
optionsColumn.setCellEditor(new DefaultCellEditor(optionComboCell));
我的問題,這一點,是直到在列的單元格,選擇它並不顯示爲JComboBox中。 加載JFrame時,整個表看起來都是一樣的,就好像所有單元格中只有文本一樣。 單擊時,它將顯示組合框的箭頭和選項,但再次取消選擇時,它看起來像常規單元格。
任何方法來解決這個問題?
它有點作品。我已經使用了ComboBoxCellRenderer類,現在它顯示爲一個組合框,但是,一旦選擇了一個選項,它仍然顯示爲一個空的組合框。只有當下拉列表打開時,所選項目纔可見 –
@Llablabla您必須確保您試圖選擇的項目(在調用getTableCellRendererComponent期間)實際存在於ComboBox模型中,否則它不會工作。 –
謝謝。如何設置默認值?因爲起初,沒有選項顯示爲選中狀態。只有當我選擇一個 –