簡體   English   中英

jtable中的動態jcombobox渲染

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM