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 からアイテムを選択できなくなります。選んでも選ばれない。
現在、以下のリンクに記載されているコードを使用しています。
誰かがこれのサンプルコードを提供してくれれば、私にとって非常に役に立ちます。
前もって感謝します。