[英]Dynamic jcombobox rendering inside jtable
我在JTable的2列中有一個帶有JCheckboxes的JTable。 可以說A列和B列是其中帶有JComboBox的列。 列A的JCheckbox的項是靜態的,可以進行硬編碼。 但是,列B的JComboBox值的項目是動態的。 我想做的是,當用戶啟動應用程序時,列A的JcomboBox應該具有靜態值,並且應該在ComboBox中將默認選擇的值顯示為“ --- Select ---”。
即我將combox項設置為[“ --Select”,“ X”,“ Y”,“ Z”]
同樣,在B列的JComboBox中應將默認值顯示為“ Please Wait”,這意味着一段時間后它將被動態更新。 在此之前,它必須顯示“ Please Wait”。
經過一系列用戶操作后,我想用動態值更新列B的JComboBox。 即使如此,列B的JcomboBox值也取決於列A的JcomboBox選定的項。
我可以動態更新值,但是將該單元作為JComboBox進行渲染無法正常工作。
我嘗試了以下方法
Enumeration<TableColumn> c = myTable.getColumnModel().getColumns();
int i = 0;
while (c.hasMoreElements()) {
TableColumn column = c.nextElement();
column.setCellRenderer(new ComboBoxCellRenderer(i));
i++;
}
private static class ComboBoxCellRenderer extends JComboBox implements TableCellRenderer {
public ComboBoxCellRenderer(int column) {
// for (int i = 0; i < elements.length; i++) {
if (column == 0) {
addItem("--Select--");
addItem("X");
addItem("Y");
addItem("Z");
}
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setSelectedItem(value);
return this;
}
}
如果使用此代碼,則無法從JComboBo中選擇項目。 即使我選擇,它也不會被選擇。
我目前正在使用以下鏈接中提到的代碼。
如果有人為此提供示例代碼,這對我會很有幫助。
提前致謝。
DependentColumn
可能會提供一些指導。 如果從屬列也是可編輯的,請參見這些相關示例 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.