Как добавить уникальные JComboBoxes в столбец в JTable (Java)

Я пытаюсь добавить уникальные JComboBoxes в столбец JTable . Я знаю, что можно добавить JComboBox ко всему столбцу, используя

 TableColumn col = table.getColumnModel().getColumn(columnNumber); col.setCellEditor(new MyComboBoxEditor(values)); 

но мне нужно, чтобы каждый JComboBox был другим и имел в нем разные строки. Есть идеи?

Переопределить метод getCellEditor (…). Например;

 import java.awt.*; import java.awt.event.*; import java.util.List; import java.util.ArrayList; import javax.swing.*; import javax.swing.border.*; import javax.swing.table.*; public class TableComboBoxByRow extends JFrame { List editors = new ArrayList(3); public TableComboBoxByRow() { // Create the editors to be used for each row String[] items1 = { "Red", "Blue", "Green" }; JComboBox comboBox1 = new JComboBox( items1 ); DefaultCellEditor dce1 = new DefaultCellEditor( comboBox1 ); editors.add( dce1 ); String[] items2 = { "Circle", "Square", "Triangle" }; JComboBox comboBox2 = new JComboBox( items2 ); DefaultCellEditor dce2 = new DefaultCellEditor( comboBox2 ); editors.add( dce2 ); String[] items3 = { "Apple", "Orange", "Banana" }; JComboBox comboBox3 = new JComboBox( items3 ); DefaultCellEditor dce3 = new DefaultCellEditor( comboBox3 ); editors.add( dce3 ); // Create the table with default data Object[][] data = { {"Color", "Red"}, {"Shape", "Square"}, {"Fruit", "Banana"}, {"Plain", "Text"} }; String[] columnNames = {"Type","Value"}; DefaultTableModel model = new DefaultTableModel(data, columnNames); JTable table = new JTable(model) { // Determine editor to be used by row public TableCellEditor getCellEditor(int row, int column) { int modelColumn = convertColumnIndexToModel( column ); if (modelColumn == 1 && row < 3) return editors.get(row); else return super.getCellEditor(row, column); } }; JScrollPane scrollPane = new JScrollPane( table ); getContentPane().add( scrollPane ); } public static void main(String[] args) { TableComboBoxByRow frame = new TableComboBoxByRow(); frame.setDefaultCloseOperation( EXIT_ON_CLOSE ); frame.pack(); frame.setVisible(true); } } 

Попробуй это:

 ... final Object[] obj = {"test1", "test2", "test3"}; JTable jTable = new JTable(); TableColumn column = jTable.getColumnModel().getColumn(1); column.setCellEditor(new AutoCompletionComboBoxEditor(obj)); ... public static class AutoCompletionComboBoxEditor extends AbstractCellEditor implements TableCellEditor { JComboBox cbx; public AutoCompletionComboBoxEditor(Object[] items) { cbx = new JComboBox(items); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { return cbx; } public Object getCellEditorValue() { return cbx.getSelectedItem(); } } 

попробуйте сказать мне эффект 🙂

-Saligh

  • JTable Как обновить модель таблицы после вставки, удалить или обновить данные.
  • Работа с несколькими пользовательскими шаблонами таблиц, исключающими повторяющийся код
  • Заполнение JTable большим количеством строк
  • Несколько строк заголовка JTable
  • Как поддерживать JTable-рендеринг ячейки после редактирования ячейки
  • Таблица сортировки неверна при нажатии кнопки сортировки более одного раза?
  • Добавление нескольких JProgressBar в TableColumn JTable
  • Java, изменение содержимого ячейки как функции другой ячейки в той же строке
  • Как сделать JButton в JTable-ячейке щелчком мыши?
  • Как сделать редактор таблиц JComboBox иметь дизайн обычного JComboBox?
  • Показать столбец столбца при перетаскивании столбца
  • Interesting Posts

    Как сортировать дату, которая находится в формате строки в java?

    Существует ли общий конструктор с ограничением параметра в C #?

    простой пример IPython вызывает исключение на sys.exit ()

    Как выбрать «последний ребенок» с определенным именем classа в CSS?

    .NET Out Of Memory Exception – используется 1,3 ГБ, но установлено 16 ГБ

    Как отключить Crashlytics при разработке

    Что такое файлы .efires в ОС X Lion's Recovery HD?

    Отключить диалоговое окно «Open File – Security Warning» Windows 7 для exe на локальном диске?

    Удалить DD-WRT с DIR-615

    Язык перевода с угловым 2 в приложении

    Перенаправить на именованный шаблон url непосредственно из urls.py в django?

    Что вызывает ERROR: нет уникального ограничения, связанного с заданными ключами для таблицы ссылок?

    java.lang.ClassFormatError: Отсутствует атрибут кода в методе, который не является родным или абстрактным в файле classа javax / mail / MessagingException

    Звук динамика для основных функций компьютера?

    Как отключить компьютер без обновления в Windows 7?

    Давайте будем гением компьютера.