powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable - скрыть столбец ID
9 сообщений из 9, страница 1 из 1
JTable - скрыть столбец ID
    #34370768
Uster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!

Для работы с таблицами использую след. способ:

1) Класс для описания строки таблицы (TRow).
2) Класс, расширяющий AbstractTableModel для описания последовательности колонок, сравнения ячеек, добавления строк (TReport).
3) Класс от JPanel, создаёт JTable и устанавливает внешний вид таблицы.

Всё колонки, которые определены в TRow обязательно должны быть и в TReport, иначе ошибка.
Столбец ID нужен обязательно, но выводить его не нужно.
Сделать ширину столбца равной 0 тоже не подходит: 1) видно всё равно; 2) использую автом. определение ширины столбца.

На Java2s есть пример, но там при выборе видим.-невидим. столбцов, полностью исчезает невидимая колонка и соответственно получить данные из неё невозможно.

Каким образом вы решали эту проблему?
...
Рейтинг: 0 / 0
JTable - скрыть столбец ID
    #34371337
oleg555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай для столбца
setPreferredWidth(0);
setMinWidth(0);
setMaxWidth(0);
и он исчезнет
...
Рейтинг: 0 / 0
JTable - скрыть столбец ID
    #34371726
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понимаю. Надо разрешить пользователю прятать колонку, или на этапе разработки?
Если первое - самый простой способ вам озвучили. Если второе - тогда не понимаю, кто вас заставляет эту колонку вообще в модели декларировать?
Про TReport не совсем понял, в чем фишка и как он использует контракт, предназначенный для JTable.
...
Рейтинг: 0 / 0
JTable - скрыть столбец ID
    #34371733
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.codeguru.com/java/articles/660.shtml - ну вот кстати, ссылка из гугла, как это делать правильно. Если, вам, конечно интересно.
...
Рейтинг: 0 / 0
JTable - скрыть столбец ID
    #34371864
Uster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeonidvНе понимаю. Надо разрешить пользователю прятать колонку, или на этапе разработки?
Если первое - самый простой способ вам озвучили. Если второе - тогда не понимаю, кто вас заставляет эту колонку вообще в модели декларировать?
Про TReport не совсем понял, в чем фишка и как он использует контракт, предназначенный для JTable.

1. На этапе разработки спрятать и не показывать никогда.
2. Если в модели не декларировать...
Точно! У самой есть пример, когда в классе TRow вместе с моделью хранится еще и доп вектор.
В случае ID вместо вектора integer.
Только переделывать придется. :-)
Сначала попробую setPreferredWidth(0);
setMinWidth(0);
setMaxWidth(0);

3. TReport - функции те же в принципе, что и в MyTableModel () из примера ниже.

Leonidvhttp://www.codeguru.com/java/articles/660.shtml - ну вот кстати, ссылка из гугла, как это делать правильно. Если, вам, конечно интересно.

Пример хороший, спасибо.
...
Рейтинг: 0 / 0
JTable - скрыть столбец ID
    #34372151
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то мне кажется, вы не совсем понимает, что такое JTable, TableModel и как это едят.
На самом деле, все просто. В JTable можно подсунуть какой угодно объект (да хоть объект бизнес-логики, если совесть позволяет), если подмешать к нему интерфейс TableModel. Для облегчения труда разработчиком, в Swing есть базовые заготовки для создания моделей. Самая дубовая "plug&play" - это DefaultTableModel. Чего уж там она делает не помню, потому как ни разу не использовал. Но вроде принимает на вход два массива - заголовков столбцов и данных. Если нужно что-то более хитрое, делают наследника от AbstractTableModel. Там нужно определить три метода:
Код: plaintext
1.
2.
3.
   public   int  getRowCount();
   public   int  getColumnCount();
   public  Object getValueAt( int  row,  int  column);
Как вы их определите, как что вы будете хранить еще в классе своей модели лично ваше дело. Для отображения таблицы главное не противоречиво объявить эти три метода. Непротиворечиво - в том плане, что если вы декларируете 3 строки (getRowCount = 3), то и getValueAt(2,0) должно нормально обрабатываться. Больше JTable ничего не волнует, делайте в своем классе что хотите. Откуда вы берете значения (getValueAt), тоже никого не волнует
...
Рейтинг: 0 / 0
JTable - скрыть столбец ID
    #34373763
Uster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonidv
Как вы их определите, как что вы будете хранить еще в классе своей модели лично ваше дело. Для отображения таблицы главное не противоречиво объявить эти три метода. Непротиворечиво - в том плане, что если вы декларируете 3 строки (getRowCount = 3), то и getValueAt(2,0) должно нормально обрабатываться. Больше JTable ничего не волнует, делайте в своем классе что хотите. Откуда вы берете значения (getValueAt), тоже никого не волнует

Значения getValueAt надо откуда-то брать, если они не хранятся в модели, то вопрос-откуда?
Да, я до сих пор не понимаю зачем столько наворотов в Java для работы с JTable. После очень удобного интерфейса Delphi.

Не знаю, можно ли на Delphi сделать, например, такое: см. каритнку
Это таблица, показывающая сколько времени водитель провел за рулём автомобиля и как он вёл автомобиль (хорошо - зелёный цвет). При нажатии на кнопки в этой таблице открывается диалоговое окно с подробной инфой.
Но, насколько часто требуется такая экзотика... думаю 95% нужно вывести инфу из БД.
...
Рейтинг: 0 / 0
JTable - скрыть столбец ID
    #34373776
Uster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
JTable - скрыть столбец ID
    #34375229
fplab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поглядите еще тут: http://]http://www.sql.ru/forum/actualthread.aspx?tid=148451
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable - скрыть столбец ID
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]