JComboBox не открывается в jTable - PullRequest
1 голос
/ 25 июля 2011

Я создал таблицу, в которой в ячейке каждой строки отображается поле со списком. Я использовал следующие два класса в качестве редактора ячеек и средства визуализации ячеек соответственно. Каким-то образом, когда таблица отображается, каждое поле со списком в ячейке не открывается при нажатии. Кто-нибудь может дать мне подсказку? Заранее спасибо

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;
}
}

1 Ответ

1 голос
/ 25 июля 2011

, пожалуйста, прочитайте Руководство по JTable , есть Редакторы и средства визуализации и Использование поля со списком в качестве редактора , некоторые примеры на этом форуме (включая AutoCompletedJComboBox в JTable) или здесь или здесь

, но в основном это ваш вопрос (проверьте, если вы установили это)

public boolean isCellEditable(int row, int col) {
    if (col == someInt) {
        return true;
    } else if (col == TableColumnsStartsWithZero) {
        return true;
    } else {
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...