|
|
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. У меня есть табличка( заполнена данными из соотв. таблицы БД). Мне нужно сделать возможность редактировать таблицу( при этом данные, измененные в таблице, должны измениться и в БД). натолкните на мысль. сделал в модели таблице вот это,но данные не меняются в БЗ. public boolean isCellEditable (int r,int c) { return true; } public void setValueAt (Object obj,int rowIndex ,int columnIndex ) { if (students != null) { Student st = (Student) students.get(rowIndex); switch (columnIndex) { case 0: st.setSurName((String) obj); case 1: st.setFirstName((String) obj); case 2: st.setPatronymic((String) obj); } fireTableCellUpdated(rowIndex, columnIndex); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:01 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
Данные сами по себе не будут менятся в БД. Это нужно реализовывать. Не зная как у вас уже реализовано чтение, объяснить как сделать сохранение сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:03 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Поясните на примере пожалуйста,если можно, на каком-нибудь простом! сейчас у меня идёт редактирование строки, как целый объект и через диалоговое окно ,где я вижу данные в формах,т.е. JTextField и т.д точно так идёт и добавление. а как это мне реализовать через ячейки( или где что можно посмотреть или натолкните в правильную степь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:16 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНе зная как у вас уже реализовано чтение из базы данных , объяснить как сделать сохранение сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:20 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
запись в базу должна происходить от события по щелчку мыши? так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:20 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
s.oзапись в базу должна происходить от события по щелчку мыши? так? Запись в базу должне происходить тогда, когда вам, как разработчику это нужно, чтобы реализовать требования. У вас в требованиях написано "по щелчку мыши"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:22 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
у меня есть класс одиночка,в нём происходит подключение к базе и методы,которые позволяют работать с базой данных,потом я эти методы использую там,где нужно. public void updateStudent(Student student) throws SQLException { PreparedStatement stmt = null; try { stmt = con.prepareStatement ( "UPDATE students SET " + "firstName=?, patronymic=?, surName=?, " + "WHERE student_id=?"); stmt.setString(1, student.getFirstName()); stmt.setString(2, student.getPatronymic()); stmt.setString(3, student.getSurName()); stmt.execute(); } finally { if (stmt != null) { stmt.close(); } } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:27 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
s.oу меня есть класс одиночка Не стоит переводить устоявшиеся термины. Singleton он и есть singleton. Что к теме отношения не имеет. s.o,в нём происходит подключение к базе и методы,которые позволяют работать с базой данных,потом я эти методы использую там,где нужно. public void updateStudent(Student student) throws SQLException Что мешает вызвать этот метод, в коде приведенном выше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:29 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
Да,нужно чтобы я щёлкал на ячейку,т.е. клетку измени,потом нажал интер и данные сохранились измененные в базе! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:30 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
s.oДа,нужно чтобы я щёлкал на ячейку,т.е. клетку измени,потом нажал интер и данные сохранились измененные в базе! И что именно из этого не получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:33 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
s.oДа,нужно чтобы я щёлкал на ячейку,т.е. клетку измени,потом нажал интер и данные сохранились измененные в базе! Читать про Hibernate или OpenJPA, до полного просветления! До этого прочитать про паттерн MVC (Model View Controller) P.S. Мой совет. Возьмите Visual Studio + С# или Delhi и не мучайтесь с Java :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:36 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
Спасибо,вы натолкнули меня на мысль. Если не получатся,задам вопросы. Понял свою оплошность,просто напросто,у меня нету событий,происходящих от двойного щелчка мыши по клетки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:42 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
mad_nazgulЧитать про Hibernate или OpenJPA, до полного просветления! Слишком web-ориентированые решения. mad_nazgulДо этого прочитать про паттерн MVC (Model View Controller) Не очень хорошо работает для GUI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:42 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
спасибо за советы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 13:43 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСлишком web-ориентированые решения. Так скажем ORM к вебу имеет абсолютно перпендикулярное отношение :-) Blazkowiczmad_nazgulДо этого прочитать про паттерн MVC (Model View Controller) Не очень хорошо работает для GUI. С точностью до наоборот. Паттерн MVC позволяет использовать ORM, не заботясь где и как данные будут отображаться. В толстом или тонком клиенте. Просто делается слой сервисов или DAO. А какому GUI он прикрутится все равно. Будь то SWING, AWT или JSP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 15:01 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
mad_nazgulТак скажем ORM к вебу имеет абсолютно перпендикулярное отношение :-) Скажем так, конкретно Hibernate и другие реализации JPA очень классно ориентированы на многопользовательские сервера. При этом на толстом клиенте они будут выглядеть бестолково. mad_nazgulС точностью до наоборот. Конечно. MVP и MVVM, ведь идиоты придумали. mad_nazgulПаттерн MVC позволяет использовать ORM, не заботясь где и как данные будут отображаться. Так скажем MVC к ORM отношения не имеет и ничего такого не "позволяет". mad_nazgulВ толстом или тонком клиенте. Угу. Вот только такие фичи как persistent collection, level 2 cache, dirty entities - они все на толстом клиенте, как собаке пятая нога. Вроде, и можно заюзать, но геморроя потом больше чем профита. mad_nazgulПросто делается слой сервисов или DAO. DAO для ORM. Ну-ну. mad_nazgulА какому GUI он прикрутится все равно. Будь то SWING, AWT или JSP. Это только в теории всё так. Многие "начинающие архитекторы" тоже думают, что MVC нужен чтобы уровень View было проще менять. А DAO для того чтобы было проще менять источник данных. На самом деле MVC нужен только для того чтобы уменьшить связность путём разделения на слои. А нужен ли DAO для ORM, это тоже всё ещё вопрос открытый. Так как все нюансы работы с БД, ORM уже инкапсулирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 15:12 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСкажем так, конкретно Hibernate и другие реализации JPA очень классно ориентированы на многопользовательские сервера. При этом на толстом клиенте они будут выглядеть бестолково. Почему? ORM позволяет "скрыть" работу с БД. Какая разница, что для тонкого, что для толстого клиента. BlazkowiczУгу. Вот только такие фичи как persistent collection, level 2 cache, dirty entities - они все на толстом клиенте, как собаке пятая нога. Вроде, и можно заюзать, но геморроя потом больше чем профита. А в чем геморрой?! Blazkowiczmad_nazgulА какому GUI он прикрутится все равно. Будь то SWING, AWT или JSP. Это только в теории всё так. Многие "начинающие архитекторы" тоже думают, что MVC нужен чтобы уровень View было проще менять. А DAO для того чтобы было проще менять источник данных. На самом деле MVC нужен только для того чтобы уменьшить связность путём разделения на слои. А нужен ли DAO для ORM, это тоже всё ещё вопрос открытый. Так как все нюансы работы с БД, ORM уже инкапсулирует. О чем я говорил. Разделение на слои. Один пишет работу с БД, другой рисует GUI. Причем, тому кто пишет работу с БД все равно какой будет GUI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 16:03 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
mad_nazgulПричем, тому кто пишет работу с БД все равно какой будет GUI. Это только в теории так. На практике приходится и GUI переделывать, чтобы работа с базой была оптимальнее и запросы ковырять под требования к GUI. Всякое бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 16:06 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
Blazkowiczmad_nazgulПричем, тому кто пишет работу с БД все равно какой будет GUI. Это только в теории так. На практике приходится и GUI переделывать, чтобы работа с базой была оптимальнее и запросы ковырять под требования к GUI. Всякое бывает. GUI делается не под требования данных, а под требования пользователей и их БП. Соответственно БД может переделываться под требования GUI (точнее изменения БП). При "разнесенных" уровнях, это позволяет делать изменения в минимальном количестве мест. Вообще-то это уже вопрос не программирования, а проектирования системы. Есть множество подходов. Можно напрямую сущности транслировать в БД. Можно выделить "постоянные" блоки данных и только их хранить в БД. Можно вообще использовать EAV. Вариантов много и у каждого есть свои достоинства и недостатки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 07:26 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
Помогите! устанавливаю на свою таблицу слушателя stdList.addMouseListener(new MouseAdapter () { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { JTable target = (JTable)e.getSource(); int row = target.getSelectedRow(); int column = target.getSelectedColumn(); } } }); как мне узнать,по какой строке и колонке (или по какой клетке) сделано два клика? чтобы в дальнейшем сделать обновление этой клетки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 17:42 |
|
||
|
Редактирование JTable
|
|||
|---|---|---|---|
|
#18+
s.o, JTable#columnAtPoint(Point) JTable#rowAtPoint(Point) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 20:59 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38712093&tid=2126783]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 520ms |

| 0 / 0 |
