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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объект в JTable 
V
    Опции темы
Filin88
Дата 3.7.2008, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В таблицу в одну колонку заносится объект из двух значений (String, Int). Так вот нужно чтобы в ячейках по умолчанию выводилось значение String. Я написал, но он выводит ссылку на объект. Не пойму в чем дело
Код


//data,colHeads-это векторы

DefaultTableModel model = new DefaultTableModel(data,colHeads);    
        
        t1 = new JTable(model);
        
        t1.setDefaultRenderer(StringInt.class ,new TableRenderer());
    t1.setPreferredSize(new Dimension(300,400));
    t1.setMinimumSize(new Dimension(50,50));
    t1.setSelectionBackground(Color.LIGHT_GRAY);
    t1.setRowSelectionAllowed(true);
    t1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        
        
    JScrollPane js = new JScrollPane(t1);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    js.setPreferredSize(new Dimension(200,200));
    js.setViewportBorder(BorderFactory.createEtchedBorder());


public class TableRenderer extends DefaultTableCellRenderer implements TableCellRenderer
{
    
public Component getTableCellRendererComponent(JTable table,
       Object value, boolean isSelected,
       boolean hasFocus, int row, int column)
        {
    
        
    this.setValue(((StringInt)value).str);
    
        return this;
        }

}

public class StringInt {
    
    public String str = null;
    public int intval;

    public StringInt(String bv, int iv) {
        str = bv;
        intval = iv;
    }
}



StringInt - это класс объекта, который в векторе data, и из него надо вывести String в ячейку. 
PM MAIL   Вверх
SaSho
Дата 3.7.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Думаю, дело в том, что в твоей модели метод getColumnClass возвращает Object.class: в DefaultTableModel данный метод не переопределён, а в его суперклассе 
AbstractTableModel данный метод всегда возвращает Object.class.
Выхода два:
1. Использовать свою модель таблицы с переопредённым методом getColumnClass(int columnIndex), который для нужного столбца будет возвращать StringInt.class.
2.  переопределить метод тоСтринг() класса StringInt.class:
Код

public class StringInt {
    
    public String str = null;
    public int intval;
    public StringInt(String bv, int iv) {
        str = bv;
        intval = iv;
    }

   public String toString(){
      return str;
   }

}


PM MAIL ICQ Jabber   Вверх
dorogoyIV
Дата 3.7.2008, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



ты написал свой рендерер.
ты присвоил этот свой рендерер таблице.
то, что рендерер возвращает, то и будет в таблице, т.е. в рендерере пиши:
Код

return value.toString();

PM MAIL   Вверх
Filin88
Дата 4.7.2008, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо, люди! Сам бы не додумался! smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0417 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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