powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Задолбала jTable.....
25 сообщений из 40, страница 1 из 2
Задолбала jTable.....
    #34585327
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сижу с ней уже второй месяц. После фоксового grid и студийного DataGridView
это какой-то монстр.
Сама по себе конструкция гибкая но громоздкая как черти знает что. Крыша помаленьку съезжает.
Что не понятно, или точнее что бесит (возможно от того что не понятно).

Описание структуры отображаемых в JTable данных реализуется через TableModel - в принципе жить можно,
но с ее помощью не опишешь внешний вид (размеры и положения столбцов, редакторы ячеек и т.д.).
Ну и ладно, создам TableColumnModel - то же здорово. Но как теперь это все помирить ?
В классе TableModel будет обязательно присутстовать метод обновления данных (данные я получаю с SQL сервера) оканчивающийся на fireTableChanged(null); (я не нашел другого способа нормально обновляться, может тут проблема ?) после чего всю мою установленную для jTable TableColumnModel сносит напроч, т.е. таблица попросту перестраивается и я ее вынужден заново "причесывать". Не проблема конечно после обновления сказать jTable1.setColumnModel(тытытуту), но как то это все шиворот-навыворот чтоли.

Как оно по людски то делаться должно. Если будете посылать.... ну в смысле в интернет то плиз по конкретным ссылкам, от гугля, яндекса и апорта меня уже тошнит. Все вылетает на сановскую документацию или на аналогичные вопросы, а нужна просто методика, пуская да же какая то теория.
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34585347
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Далеко посылать не нужно - javadoc и исходники JTable.

И кто же это Вас надоумил листенеры оповещать событием null? Для тех кому, простите, мозгов не хватает сформировать грамотное событие сделаны соответствующие методы:
javadoc
void fireTableCellUpdated(int row, int column)
Notifies all listeners that the value of the cell at [row, column] has been updated.
void fireTableDataChanged()
Notifies all listeners that all cell values in the table's rows may have changed.
void fireTableRowsDeleted(int firstRow, int lastRow)
Notifies all listeners that rows in the range [firstRow, lastRow], inclusive, have been deleted.
void fireTableRowsInserted(int firstRow, int lastRow)
Notifies all listeners that rows in the range [firstRow, lastRow], inclusive, have been inserted.
void fireTableRowsUpdated(int firstRow, int lastRow)
Notifies all listeners that rows in the range [firstRow, lastRow], inclusive, have been updated.
void fireTableStructureChanged()
Notifies all listeners that the table's structure has changed.


Атеперь внимательно смотрим в исходники JTable что происходит в Вашем случае:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
/**
     * Invoked when this table's <code>TableModel</code> generates
     * a <code>TableModelEvent</code>.
     * The <code>TableModelEvent</code> should be constructed in the
     * coordinate system of the model; the appropriate mapping to the
     * view coordinate system is performed by this <code>JTable</code>
     * when it receives the event.
     * <p>
     * Application code will not use these methods explicitly, they
     * are used internally by <code>JTable</code>.
     * <p>
     * Note that as of 1.3, this method clears the selection, if any.
     */
     public   void  tableChanged(TableModelEvent e) {
         if  (e ==  null  || e.getFirstRow() == TableModelEvent.HEADER_ROW) {
            // The whole thing changed
            clearSelection();

            checkLeadAnchor();

            rowModel =  null ;

             if  (getAutoCreateColumnsFromModel()) {
		// This will effect invalidation of the JTable and JTableHeader.
                createDefaultColumnsFromModel();
		 return ;
	    }
//...

И Вас еще что-то удивляет? Обращаю внимание на метод createDefaultColumnsFromModel();
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34585353
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ. Надоумил меня пример JDBCAdapter из папочки Demo JDK.
И всетаки, ну почему каждый раз надо заново изобретать велосипед.
Неужели статеек на русском для заядлых фоксятников, дельфятников, и прочих переметнувшихся нету.
И ведь в магазине шаром покати......
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34585915
Дуремар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegovНеужели статеек на русском для заядлых фоксятников, дельфятников, и прочих переметнувшихся нету.
И ведь в магазине шаром покати......
Рекомендую
И про сановскую документацию не забывайте - там есть все что нужно, причем в доступной форме. На вражъем языке правда, но тут уж ничего не попишешь - если занимаешься программированием, то вражий язык нада знать...
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34585988
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот в какой книжке есть хороший материал по созданию интерфесов для бух программ, торговлей, зарплат и т.д. Я только в этом году за книги по различным языкам тыс 6-7 растратил. Из трех-четырех изданий кое как удается набрать чтолибо вразумительно. Может есть рекомендации. А вообще, почему в интернете то ничего путевого нет ? Технология не развита ? Или просто редко используется в такой сфере ? Или секрет ? По Net, по VFP, по Delphi сколько хошь....
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34586003
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Sat, 09 Jun 07 09:53:58 GMT
"olegov" <nospam@sql.ru>; записано:

> Автор: olegov
> А вот в какой книжке есть хороший материал по созданию интерфесов для
> бух программ, торговлей, зарплат и т.д. Я только в этом году за книги
> по различным языкам тыс 6-7 растратил. Из трех-четырех изданий кое
> как удается набрать чтолибо вразумительно. Может есть рекомендации. А
> вообще, почему в интернете то ничего путевого нет ? Технология не
> развита ? Или просто редко используется в такой сфере ? Или секрет ?
> По Net, по VFP, по Delphi сколько хошь.... Тема Ответить Сообщение
>


а ключи от квартиры в которой деньги лежат?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34586041
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegovА вот в какой книжке есть хороший материал по созданию интерфесов для бух программ, торговлей, зарплат и т.д. Я только в этом году за книги по различным языкам тыс 6-7 растратил. Из трех-четырех изданий кое как удается набрать чтолибо вразумительно. Может есть рекомендации. А вообще, почему в интернете то ничего путевого нет ? Технология не развита ? Или просто редко используется в такой сфере ? Или секрет ? По Net, по VFP, по Delphi сколько хошь....

этот боян тут раз в месяц регулярно рвётся. да. на Swing давно забили ...

тынц пынц дрынц пыдымц
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34586287
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deady
На Sat, 09 Jun 07 09:53:58 GMT
"olegov" <nospam@sql.ru>; записано:
>
> По Net, по VFP, по Delphi сколько хошь.... Тема Ответить Сообщение
>
а ключи от квартиры в которой деньги лежат?
Posted via ActualForum NNTP Server 1.4

Ну чего так сразу "ключи от квартиры", я то прошу книгу издать....
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34586295
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expp olegovА вот в какой книжке есть хороший материал по созданию интерфесов для бух программ, торговлей, зарплат и т.д. Я только в этом году за книги по различным языкам тыс 6-7 растратил. Из трех-четырех изданий кое как удается набрать чтолибо вразумительно. Может есть рекомендации. А вообще, почему в интернете то ничего путевого нет ? Технология не развита ? Или просто редко используется в такой сфере ? Или секрет ? По Net, по VFP, по Delphi сколько хошь....

этот боян тут раз в месяц регулярно рвётся. да. на Swing давно забили ...

тынц пынц дрынц пыдымц

это как это забили ? там чужие и непонятные компоненты, а хочется свои родные.

Да собственно вопрос-то сузился к тому как TableColumnModel после резапроса данных.
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34586463
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа собственно вопрос-то сузился к тому как TableColumnModel после резапроса данных.
Я же уже все рассказал.
fireTableDataChanged()
или
setAutoCreateColumnsFromModel(false)
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34586614
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2олегов

авторА вот в какой книжке есть хороший материал по созданию интерфесов для бух программ, торговлей, зарплат и т.д

заведи здесь топик такой и пость туда. И другим интересно будет.
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34586950
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegovА вот в какой книжке есть хороший материал по созданию интерфесов для бух программ, торговлей, зарплат и т.д. Я только в этом году за книги по различным языка тыс 6-7 растратил. Из трех-четырех изданий кое как удается набрать чтолибо вразумительно. Может есть рекомендации. А вообще, почему в интернете то ничего путевого нет ? Технология не развита ? Или просто редко используется в такой сфере ? Или секрет ? По Net, по VFP, по Delphi сколько хошь....
В выделенном ваша проблема. В мире Java (в отличии от Delphi, например) книги надо покупать не по языкам, а по технологиям. Фаулер, Блох, GoF...
Ответ по книгам - Купер, Раскин, Спольски.
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34590655
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ну чем дальше в лес тем больше дров.....
1. При создании TableModel я создаю вектор содержащий собственно набор данных.
Как выцепить содержание текущей строки вектора данных ? Т.е. той строки которая сейчас выбрана в таблице ?

2. Набор данных (ResultSet) может содержать какое то количество столбцов, не факт что я их
все хочу отобразить в таблице. Один из вариантов - не выливать то что не нужно в вектор,
но тогда опять пункт 1. + как еще и выцепить текущую строку из ResulSet.

3. Как программно переместиться на нужную строку в наборе данных, т.е. не только в таблице но и в векторе
и в ResultSet. (как встать на нужную запись в ResultSet я знаю, но при этом и в векторе в Таблице должно
произойти то же самое)

И на последок, чем чревато использование resultSet.TYPE_SCROLL_SENSITIVE ?
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34590776
Фотография hinotf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Если именно в модели, то getSelectedRow(), а затем по возвращенному индексу getValueAt(строка, столбец)
2. не понял
3. установить программно
jTable1.setRowSelectionInterval(начало, конец);
прокрутить до установленного
jTable1.scrollRectToVisible(jTable1.getCellRect(строка, столбец, true));


Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya
Aiya Eärendil Elenion Ancalima!
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34591020
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hinotf
2. не понял

Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya
Aiya Eärendil Elenion Ancalima!

Положим я с сервера получаю набор данных со столбцами code, name, address, phone, inn,
а в таблице хочу показать code, name, inn.....
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34591297
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.получить данные
2.поместить их в DefaultTableModel
3.table.setModel(модель)
4.добавить колонки вручную


- чтоб автоматом колонки из модели не создавались:

table.setAutoCreateColumnsFromModel(false);
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34591543
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10241.получить данные
2.поместить их в DefaultTableModel
3.table.setModel(модель)
4.добавить колонки вручную


- чтоб автоматом колонки из модели не создавались:

table.setAutoCreateColumnsFromModel(false);

Как понять "добавить колонки вручную" ? Как тупо добавить колонки к таблице я знаю, а как их из мождели добавить ?
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34591661
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TableColumn(int modelIndex)
table.addColumn(

примерно так
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34591667
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hinotf1. Если именно в модели, то getSelectedRow(), а затем по возвращенному индексу getValueAt(строка, столбец)

Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya
Aiya Eärendil Elenion Ancalima!

Это прокатывает пока столбец не сортирован, после сортировки естественно не катит.
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34591813
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще момент.
Я пытаясь отследить событие перемещения по строкам создаю такую конструкцию

setSelectionMode(selectionModel.SINGLE_SELECTION);
getSelectionModel().addListSelectionListener(new RowSelectionEvent());

.
.
.
.

class RowSelectionEvent implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
System.out.println(getSelectedRow());
}
}


Почему когда я перемещаюсь по таблице клавишами-стрелками все нормально (выдается номер строки),
а когда мышкой номер строки выдается два раза, т.е один раз перехватывается события нажатия кнопки,
а один раз отпускание ?
И как эту строку связать с источником данных для TableModel ?

Ко' шмар какойто......
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34592196
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegov - читайте javadoc, он рулит

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 class  RowSelectionEvent  implements  ListSelectionListener {
 public   void  valueChanged(ListSelectionEvent e) {
 if  (!e.getValueIsAdjusting()) {
System.out.println(getSelectedRow());
}
}
}
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34592657
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но в целом проблему это не решило, как быть если столбец соротирован ?
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34592676
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну нужно отковырять сортировку, и через сортировочную модель получить доступ к исходной (там же типа Chain Of Resp pattern)

короч, я писал в своё время такую ...ню:
TableModel кот обёртывал List<Bean>, ColumnModel строился из моих колонок, которые имплементили: get/set редактируемую проперть Beanа, renderer, editor (ну и такую лажу как title). намудохалсо вдоволь ...

а что из тех ссылок действительно ничего не подошло?
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34592967
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exppну нужно отковырять сортировку, и через сортировочную модель получить доступ к исходной (там же типа Chain Of Resp pattern)

короч, я писал в своё время такую ...ню:
TableModel кот обёртывал List<Bean>, ColumnModel строился из моих колонок, которые имплементили: get/set редактируемую проперть Beanа, renderer, editor (ну и такую лажу как title). намудохалсо вдоволь ...

а что из тех ссылок действительно ничего не подошло?

Да нет, ссылки нормальные как образец вполне прилично, но я на фоксе привык со своими компонентами работать. Не охото чужие глюки отлавливать, а иногда приходится долше разбираться с чужими компонентами чем свой написать. Так один раз разберусь и навсегда..... если не чекнусь.....
...
Рейтинг: 0 / 0
Задолбала jTable.....
    #34592993
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О как ларец то просто открывался
при установленном setAutoCreateRowSorter(true)
получить "правильный" индекс строки вот так можно
getRowSorter().convertRowIndexToModel(getSelectedRow())

за идею смотреть в сторону сортера спасибо expp !!!

Э кака хитра штука ента jTable. Жисть налаживается.......
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Задолбала jTable.....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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