1

各行のセルにコンボ ボックスが表示されるテーブルを作成しました。次の 2 つのクラスをそれぞれセル エディターとセル レンダラーとして使用しました。どういうわけか、テーブルが表示されているときに、セル内のすべてのコンボ ボックスをクリックしても開きません。誰でも私にヒントを与えることができますか?前もって感謝します

public class CellEditor extends DefaultCellEditor{

private static final long serialVersionUID = 1L;

public CellEditor(String[] items) {
    super(new JComboBox(items));
}
}

public class ComboBoxRenderer extends JComboBox implements TableCellRenderer {
/****/
private static final long serialVersionUID = 1L;

public ComboBoxRenderer(String[] items) {
    super(items);
}

public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {

    if (isSelected) {
        this.setForeground(table.getSelectionForeground());
        super.setBackground(table.getSelectionBackground());
    } else {
        this.setForeground(table.getForeground());
        this.setBackground(table.getBackground());
    }        
    this.setSelectedItem(value);// Select the current value      
    return this;
}
}
4

1 に答える 1

1

JTableのチュートリアルを読んでください。 Editors and RenderersUsing a Combo Box as an Editorがあり、このフォーラム (JTable の AutoCompleted JComboBox を含む) またはhereまたはhereにいくつかの例があります。

しかし、基本的にはあなたの質問です(設定したかどうかを確認してください)

public boolean isCellEditable(int row, int col) {
    if (col == someInt) {
        return true;
    } else if (col == TableColumnsStartsWithZero) {
        return true;
    } else {
        return false;
    }
}
于 2011-07-25T19:04:06.253 に答える