Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > JTable. Не появляются названия колонок


Автор: DissDoc 22.1.2007, 11:48
Никак не разберусь, что я делаю не так (код сделан по примеру с сайта sun.com).
Код

// Переменные для таблицы
String[] ColumnNames = {"ID", "NAME", "STATUS", "HIDE"};
Object[][] Data = {{new Integer(1), "detal1", "working", new Boolean(true)},
     {new Integer(2), "mater_2", "approval", new Boolean(false)},
     {new Integer(3), "mater_21", "working", new Boolean(true)},
     {new Integer(4), "izdel_0", "approved", new Boolean(true)}};
JTable jTable = new JTable(Data, ColumnNames);

 this.setLayout(null);
// Создаем таблицу----------------------------------------------------------
jTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
JScrollPane jScrollTable = new JScrollPane(jTable);
//... размер колонки статуса и обозначения
jTable.getColumnModel().getColumn(2).setPreferredWidth(200);
jTable.getColumnModel().getColumn(0).setPreferredWidth(8);

jTable.setBounds(new Rectangle(20, 20, 200, 84));
this.add(jTable, null);


Что еще можно добавить, саму таблицу я располагаю на JPanel. Вроде все. Ошибка в том, что появляются только Data, а Названия столбцов отсутсвуют...

Еще возникло пара вопросов сразу
1) Как изменить цвет фона определенных строк? (изменить полностью цвет всей строки)
2) получить все данные выделенной строки.

Автор: w1nd 22.1.2007, 11:52
Добавляйте в панель jScrollTable - без него заголовка не будет. 

Автор: DissDoc 22.1.2007, 12:01
О, точно ) Я как-то необратил внимания. Спасибо огромное. + ставить не умею пока =)
Остальные два вопроса в силе )

Автор: w1nd 22.1.2007, 12:35
Цитата(DissDoc @  22.1.2007,  11:48 Найти цитируемый пост)
Еще возникло пара вопросов сразу

1) Придется реализовать свой renderer.
2) Либо предусмотрев соответствующий метод в своей реализации модели, либо никак (только по столбцам).

Автор: LSD 22.1.2007, 13:27
Цитата(DissDoc @  22.1.2007,  12:01 Найти цитируемый пост)
Спасибо огромное. + ставить не умею пока =)

Fixed

Автор: _Y_ 22.1.2007, 15:59
Цитата(w1nd @ 22.1.2007,  11:52)
Добавляйте в панель jScrollTable - без него заголовка не будет.

Почему же? Можно и без прокрутки: http://www.exampledepot.com/egs/javax.swing.table/ShowHead.html?l=rel

2) Цвет через свой рендерер. Я написал объект содержаший текст + цвета и рендерер, который все это показывает. И изпользую их везде. Странно, что нет стандартных классов для столь распространенной задачи. Написать код?

3) Получить строку: удобство зависит от конкетного приложения. Например:
Код

JTable table = new JTable(); 
. . . . . . . . . . . . .  
DefaultTableModel model = (DefaultTableModel)table.getModel();
Vector dataVector = model.getDataVector();
Vector line25 = (Vector)dataVector.get(25);

 line25 будет содержать объекты строки номер 25

Автор: Metal_Heart 23.1.2007, 11:31
Цитата(_Y_ @  22.1.2007,  15:59 Найти цитируемый пост)
2) Цвет через свой рендерер. Я написал объект содержаший текст + цвета и рендерер, который все это показывает. И изпользую их везде. Странно, что нет стандартных классов для столь распространенной задачи. Написать код?

а ты выложи свой код вот сюда:
http://forum.vingrad.ru/topic-77027.html
может и правда, кому-нибудь и пригодится. 
Только не забудь подробненько продокументировать, чтоб и начинающий разобрав твой код смог понять...

Автор: _Y_ 23.1.2007, 16:03
Цитата(Metal_Heart @ 23.1.2007,  11:31)
Цитата(_Y_ @  22.1.2007,  15:59 Найти цитируемый пост)
Я написал объект содержаший текст + цвета и рендерер, который все это показывает. И изпользую их везде. Странно, что нет стандартных классов для столь распространенной задачи.

а ты выложи свой код вот сюда:
http://forum.vingrad.ru/topic-77027.html

Сделано. Выложил http://forum.vingrad.ru/topic-77027/unread-1/45.html#entry1009090.

Но помните! Я не гуру smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)