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

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

Как оно по людски то делаться должно. Если будете посылать.... ну в смысле в интернет то плиз по конкретным ссылкам, от гугля, яндекса и апорта меня уже тошнит. Все вылетает на сановскую документацию или на аналогичные вопросы, а нужна просто методика, пуская да же какая то теория.
...
Рейтинг: 0 / 0
09.06.2007, 00:49:08
    #34585347
fixxer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
Далеко посылать не нужно - 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
09.06.2007, 01:20:18
    #34585353
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
Спасибо за ответ. Надоумил меня пример JDBCAdapter из папочки Demo JDK.
И всетаки, ну почему каждый раз надо заново изобретать велосипед.
Неужели статеек на русском для заядлых фоксятников, дельфятников, и прочих переметнувшихся нету.
И ведь в магазине шаром покати......
...
Рейтинг: 0 / 0
09.06.2007, 12:20:27
    #34585915
Дуремар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
olegovНеужели статеек на русском для заядлых фоксятников, дельфятников, и прочих переметнувшихся нету.
И ведь в магазине шаром покати......
Рекомендую
И про сановскую документацию не забывайте - там есть все что нужно, причем в доступной форме. На вражъем языке правда, но тут уж ничего не попишешь - если занимаешься программированием, то вражий язык нада знать...
...
Рейтинг: 0 / 0
09.06.2007, 12:53:58
    #34585988
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
А вот в какой книжке есть хороший материал по созданию интерфесов для бух программ, торговлей, зарплат и т.д. Я только в этом году за книги по различным языкам тыс 6-7 растратил. Из трех-четырех изданий кое как удается набрать чтолибо вразумительно. Может есть рекомендации. А вообще, почему в интернете то ничего путевого нет ? Технология не развита ? Или просто редко используется в такой сфере ? Или секрет ? По Net, по VFP, по Delphi сколько хошь....
...
Рейтинг: 0 / 0
09.06.2007, 13:01:24
    #34586003
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
На 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
09.06.2007, 13:20:00
    #34586041
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
olegovА вот в какой книжке есть хороший материал по созданию интерфесов для бух программ, торговлей, зарплат и т.д. Я только в этом году за книги по различным языкам тыс 6-7 растратил. Из трех-четырех изданий кое как удается набрать чтолибо вразумительно. Может есть рекомендации. А вообще, почему в интернете то ничего путевого нет ? Технология не развита ? Или просто редко используется в такой сфере ? Или секрет ? По Net, по VFP, по Delphi сколько хошь....

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

тынц пынц дрынц пыдымц
...
Рейтинг: 0 / 0
09.06.2007, 14:50:13
    #34586287
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
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
09.06.2007, 14:54:41
    #34586295
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
expp olegovА вот в какой книжке есть хороший материал по созданию интерфесов для бух программ, торговлей, зарплат и т.д. Я только в этом году за книги по различным языкам тыс 6-7 растратил. Из трех-четырех изданий кое как удается набрать чтолибо вразумительно. Может есть рекомендации. А вообще, почему в интернете то ничего путевого нет ? Технология не развита ? Или просто редко используется в такой сфере ? Или секрет ? По Net, по VFP, по Delphi сколько хошь....

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

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

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

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

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

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

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

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

И на последок, чем чревато использование resultSet.TYPE_SCROLL_SENSITIVE ?
...
Рейтинг: 0 / 0
13.06.2007, 09:59:12
    #34590776
hinotf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
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
13.06.2007, 11:05:32
    #34591020
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
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
13.06.2007, 12:23:26
    #34591297
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
1.получить данные
2.поместить их в DefaultTableModel
3.table.setModel(модель)
4.добавить колонки вручную


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

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


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

table.setAutoCreateColumnsFromModel(false);

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

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

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

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

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

.
.
.
.

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


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

Ко' шмар какойто......
...
Рейтинг: 0 / 0
13.06.2007, 15:45:08
    #34592196
fixxer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
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
13.06.2007, 17:21:34
    #34592657
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
но в целом проблему это не решило, как быть если столбец соротирован ?
...
Рейтинг: 0 / 0
13.06.2007, 17:25:39
    #34592676
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбала jTable.....
ну нужно отковырять сортировку, и через сортировочную модель получить доступ к исходной (там же типа Chain Of Resp pattern)

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

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

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

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

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

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

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


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