Проблема размера JComboBox в таблице с многолинейными ячейками - PullRequest
0 голосов
/ 30 сентября 2010

У меня недавно была проблема, когда мне нужно было поле, которое может переносить текст и увеличивать высоту строки при переносе текста, как в Microsoft Excel. Мне удалось заставить его работать правильно, единственная проблема в том, что таблица содержит несколько JComboBox. Когда высота строки увеличивается от поля, которое оборачивает текст, размер окна JComboBox и ArrowButton также увеличиваются. Я использую DefaultCellEditor для полей JComboBox и создал свой собственный редактор / рендерер для использования с полем JTextArea. Как только значение JComboBox выбрано, значение отображается правильно в поле, единственная проблема заключается в том, что при выборе значения окно JComboBox и ArrowButton могут быть ОГРОМНЫМИ в зависимости от размера строки. Есть ли способ увеличить высоту строки, но высота поля JComboBox остается неизменной, а не увеличивается, чтобы заполнить столбец, в котором он находится? Я думаю, что мне может понадобиться сделать специальный редактор ячеек для полей JComboBox вместо использования по умолчанию. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 30 сентября 2010

Я думаю, мне может понадобиться Пользовательский редактор ячеек для JComboBox поля, а не с помощью по умолчанию

Вероятно, это будет решением, поскольку размер редактора определяется размером ячейки.

Я бы попробовал использовать JPanel с BorderLayout в качестве компонента редактора. Затем вы добавляете свой редактор на север панели.

Это был бы самый простой редактор для создания, так как все события мыши и ключевые события передаются редактору, я думаю, что означает, что панель получит события, а не поле со списком. Поэтому я думаю, вам нужно будет переслать эти события в поле со списком.

0 голосов
/ 30 сентября 2010

Во-первых, JComboBox в BorderLayout и установлен на BorderLayout.CENTER? Если это так, я бы изменил его на другой макет, например AbsoluteLayout, чтобы он не растягивался, чтобы заполнить ячейку.

Кроме того, я также отсылаю вас к этому сообщению Помещение JComboBox в JTable

...