1

JTable の 2 つの列に JCheckboxes を持つ JTable があります。列 A と列 B に JComboBox が含まれているとします。列 A の JCheckbox の項目は静的であり、ハードコーディングできます。ただし、列 B の JComboBox 値の項目は動的です。私がやりたかったのは、ユーザーがアプリケーションを起動したときに、列 A の JcomboBox に静的な値が必要であり、ComboBox で選択されているデフォルトの値を「---Select---」として表示することです。

つまり、コンボボックス項目を ["--Select","X","Y","Z"] として設定します

また、列 B の JComboBox はデフォルト値を「お待ちください」と表示する必要があります。これは、しばらくすると動的に更新されることを意味します。それまでは、「お待ちください」と表示する必要があります。

一連のユーザー アクションの後、列 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 からアイテムを選択できなくなります。選んでも選ばれない。

現在、以下のリンクに記載されているコードを使用しています。

スタックオーバーフロー

誰かがこれのサンプルコードを提供してくれれば、私にとって非常に役に立ちます。

前もって感謝します。

4

1 に答える 1

2

DependentColumnいくつかのガイダンスを提供する場合があります。従属列も編集可能な場合は、これらの関連する例を参照してください。

画像

于 2013-03-09T20:29:23.090 に答える