| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > выделение содержимого ячейки jTable |
| Автор: Swatch 14.9.2007, 12:19 |
| Добрый день. Поделитесь советом, как сделать так, чтобы при выделении ячейки в таблице, ее содержимое (текст, цифры, даты) выделялось цветом? Ячейка редактируема по одному клику. надо, чтобы как только ее выбирали, то, если в ней есть текст, чтобы он выделялся цветом. Не сама ячейка, а именно текст. |
| Автор: powerOn 14.9.2007, 12:27 |
| попробуй для начала setSelectionForeground, если не то, то нужно свой рендерер писать |
| Автор: Swatch 14.9.2007, 12:34 |
| придется рендерер писать:( потому что setSelectionForeground уже попробовала Добавлено через 45 секунд а как в рендерере указать, чтобы текст выделился, не подскажите? |
| Автор: Swatch 14.9.2007, 12:56 | ||||
Написала вот так:
На jTableMousePressed написала:
Но текст почему-то не выделяется:( В чем млжет быть проблема??? |
| Автор: powerOn 14.9.2007, 13:05 |
| Ой, мне кажется что я вас обманул. Если текст должен быть подсвечен при редактировании, значит нужен Editor, а не Renderer... |
| Автор: powerOn 14.9.2007, 13:20 | ||
Вот что получилось в простейшем случае:
|
| Автор: Swatch 14.9.2007, 13:21 | ||||
| А можно пример Editor-а? Оставила то же самое, только TableCellRenderer исправила на TableCellEditor. Вы дает ошибку, что MyTableCellEditor.java:25: classes.MyTableCellEditor is not abstract and does not override abstract method removeCellEditorListener(javax.swing.event.CellEditorListener) in javax.swing.CellEditor :( В чем тут дело? И потом, как устанавливать Editor и когда? Подойдет на jTableMouse Click? Вот так можно:?
Добавлено через 9 минут и 54 секунды То, что вы написали, работает. Только мне нужно, чтобы не текст изменял цвет, а чтобы то, что в ячейке, выделялось (как когда выделяют текст, чтобы удалить). Я написала вот так:
Но этот код не работает. :( как-нибудь можно заставить его работать??? |
| Автор: powerOn 14.9.2007, 13:36 | ||
А если так попробовать?
|
| Автор: Swatch 14.9.2007, 15:17 |
| да, это помогло. Только теперь появилась проблема. в первый столбец можно записывать только Double. если пытаться вписать туда что-то другое и потом покинуть ячейку, то программа падает с ошибкой: java.lang.IllegalArgumentException: Cannot format given Object as a Number. как сделать так, чтобы введенный неправильный текст выделялся, фокус оставался на этой ячейке? как вообще проверить эту ошибку? сейчас фокус переходит той ячейке, на которую нажали, независимо от того, упала ошибка или нет... |