Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение строк в Jtable, Если строка не вмещает.... 
V
    Опции темы
MrLjaO
Дата 4.4.2006, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 30.3.2006
Где: Minsk

Репутация: нет
Всего: нет



Хорошего настроения всем .
Такая вещь - - в Jtable в столбце одном есть текст... при фокусе(выделении) меняеться размер шрифта - и ,как результат имеем то , что вся строка не влазит в ячейку... и имеем символы "...." в конце ( smile
Где то видел как с этим бороться... но уже длолго не могу найти как). Кто знает - помогите плиз
PM MAIL WWW   Вверх
LSD
Дата 4.4.2006, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



При выделении ячейки шрифт не меняется (по умолчанию во всяком случае), у ячейки меняется Border. Попробуй так:
Код
UIManager.put("Table.focusSelectedCellHighlightBorder", new LineBorder(Color.BLACK, 1, false));
UIManager.put("Table.focusCellHighlightBorder", new LineBorder(Color.BLUE, 1, false));



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
MrLjaO
Дата 4.4.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 30.3.2006
Где: Minsk

Репутация: нет
Всего: нет



Для столбцов с текстом я делал так :
Код

class RendererText extends JLabel implements TableCellRenderer {
          public Component getTableCellRendererComponent(JTable table, Object value,
                                                    boolean isSelected,
                                                    boolean hasFocus,
                                                    int row, int column) {
              if(value instanceof String){
                  setText((String)value);
                  setVerticalAlignment(JLabel.TOP);
                  setHorizontalAlignment(JLabel.LEFT);
                  if(isSelected)
                     setFont(new Font("",Font.BOLD,14));
                  else
                   setFont(new Font("",Font.PLAIN,14));
                 
              }
            
             return this;
            }
      } 

при данном способе - нету выделения визуального... но можно изменить шрифт текста... как раз когда я выделяю ячейку Текст в соответствующем Jlable становиться BOLD и выходит за границы - отсюда обрезание поледних символов (а иногда и доброго куска строки) и добавление "...".
И я не могу понять как мне споймать тот момент, когда ширины ячейки не хватает для полного отображения текста. (Решение данной проблемы есть ... видел на форуме... но ни как не могу найти её снова). и сделать так.. что бы невмещающийся текст перешёл на следующую строку... или в несколько строк(если требуеться)
PM MAIL WWW   Вверх
domster
Дата 5.4.2006, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 28.3.2006
Где: Одесса

Репутация: 1
Всего: 1



Цитата

и сделать так.. что бы невмещающийся текст перешёл на следующую строку... или в несколько строк(если требуеться)


Создай CellRenderer, наследуй от JTextArea и будет тебе счастье

Код

public class MultiLineCellRenderer extends JTextArea implements TableCellRenderer {
        
    public MultiLineCellRenderer() {
        setLineWrap(true);
        setWrapStyleWord(true);        
    }
            
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {        
        if (isSelected) {
            setForeground(table.getSelectionForeground());
            setBackground(table.getSelectionBackground());            
        } else {
            setForeground(table.getForeground());
            setBackground(table.getBackground());
        }
        setFont(table.getFont());        
        setText((value == null) ? "" : value.toString());        
        int rowHeight = (int)getPreferredSize().getHeight(); 
        if (table.getRowHeight(row) < rowHeight){
            table.setRowHeight(row,    rowHeight);            
        }
        return this;
    }
}

PM MAIL ICQ   Вверх
MrLjaO
Дата 5.4.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 30.3.2006
Где: Minsk

Репутация: нет
Всего: нет



Чёрт....
Всё работает. (( Спасибо. Плохо одно! То что я не сам до этого додумался.... (( Спасибо! smile
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0693 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.