powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Редактирование JTable
22 сообщений из 22, страница 1 из 1
Редактирование JTable
    #38712048
s.o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
s.o
Гость
Здравствуйте. У меня есть табличка( заполнена данными из соотв. таблицы БД). Мне нужно сделать возможность редактировать таблицу( при этом данные, измененные в таблице, должны измениться и в БД).


натолкните на мысль.
сделал в модели таблице вот это,но данные не меняются в БЗ.






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);

}
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712050
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные сами по себе не будут менятся в БД. Это нужно реализовывать. Не зная как у вас уже реализовано чтение, объяснить как сделать сохранение сложно.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712063
s.o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
s.o
Гость
Blazkowicz,

Поясните на примере пожалуйста,если можно, на каком-нибудь простом!

сейчас у меня идёт редактирование строки, как целый объект и через диалоговое окно ,где я вижу данные в формах,т.е. JTextField и т.д
точно так идёт и добавление.

а как это мне реализовать через ячейки(
или где что можно посмотреть или натолкните в правильную степь
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712066
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНе зная как у вас уже реализовано чтение из базы данных , объяснить как сделать сохранение сложно.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712067
s.o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
s.o
Гость
запись в базу должна происходить от события по щелчку мыши?
так?
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712072
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s.oзапись в базу должна происходить от события по щелчку мыши?
так?
Запись в базу должне происходить тогда, когда вам, как разработчику это нужно, чтобы реализовать требования. У вас в требованиях написано "по щелчку мыши"?
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712082
s.o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
s.o
Гость
у меня есть класс одиночка,в нём происходит подключение к базе и методы,которые позволяют работать с базой данных,потом я эти методы использую там,где нужно.

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();
}
}
}
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712085
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s.oу меня есть класс одиночка
Не стоит переводить устоявшиеся термины. Singleton он и есть singleton. Что к теме отношения не имеет.

s.o,в нём происходит подключение к базе и методы,которые позволяют работать с базой данных,потом я эти методы использую там,где нужно.

public void updateStudent(Student student) throws SQLException

Что мешает вызвать этот метод, в коде приведенном выше?
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712086
s.o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
s.o
Гость
Да,нужно чтобы я щёлкал на ячейку,т.е. клетку измени,потом нажал интер и данные сохранились измененные в базе!
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712093
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s.oДа,нужно чтобы я щёлкал на ячейку,т.е. клетку измени,потом нажал интер и данные сохранились измененные в базе!
И что именно из этого не получается?
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712095
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s.oДа,нужно чтобы я щёлкал на ячейку,т.е. клетку измени,потом нажал интер и данные сохранились измененные в базе!

Читать про Hibernate или OpenJPA, до полного просветления!
До этого прочитать про паттерн MVC (Model View Controller)

P.S. Мой совет. Возьмите Visual Studio + С# или Delhi и не мучайтесь с Java :-)
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712101
s.o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
s.o
Гость
Спасибо,вы натолкнули меня на мысль.
Если не получатся,задам вопросы.
Понял свою оплошность,просто напросто,у меня нету событий,происходящих от двойного щелчка мыши по клетки.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712103
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulЧитать про Hibernate или OpenJPA, до полного просветления!

Слишком web-ориентированые решения.

mad_nazgulДо этого прочитать про паттерн MVC (Model View Controller)

Не очень хорошо работает для GUI.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712104
s.o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
s.o
Гость
спасибо за советы
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712203
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczСлишком web-ориентированые решения.

Так скажем ORM к вебу имеет абсолютно перпендикулярное отношение :-)

Blazkowiczmad_nazgulДо этого прочитать про паттерн MVC (Model View Controller)

Не очень хорошо работает для GUI.

С точностью до наоборот.
Паттерн MVC позволяет использовать ORM, не заботясь где и как данные будут отображаться.
В толстом или тонком клиенте.
Просто делается слой сервисов или DAO.
А какому GUI он прикрутится все равно.
Будь то SWING, AWT или JSP.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712214
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 уже инкапсулирует.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712303
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712309
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulПричем, тому кто пишет работу с БД все равно какой будет GUI.
Это только в теории так. На практике приходится и GUI переделывать, чтобы работа с базой была оптимальнее и запросы ковырять под требования к GUI. Всякое бывает.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38712681
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczmad_nazgulПричем, тому кто пишет работу с БД все равно какой будет GUI.
Это только в теории так. На практике приходится и GUI переделывать, чтобы работа с базой была оптимальнее и запросы ковырять под требования к GUI. Всякое бывает.

GUI делается не под требования данных, а под требования пользователей и их БП.
Соответственно БД может переделываться под требования GUI (точнее изменения БП).
При "разнесенных" уровнях, это позволяет делать изменения в минимальном количестве мест.

Вообще-то это уже вопрос не программирования, а проектирования системы.
Есть множество подходов.
Можно напрямую сущности транслировать в БД.
Можно выделить "постоянные" блоки данных и только их хранить в БД.
Можно вообще использовать EAV.
Вариантов много и у каждого есть свои достоинства и недостатки.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38713362
s.o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
s.o
Гость
Помогите!

устанавливаю на свою таблицу слушателя
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();

}
}
});

как мне узнать,по какой строке и колонке (или по какой клетке) сделано два клика?
чтобы в дальнейшем сделать обновление этой клетки.
...
Рейтинг: 0 / 0
Редактирование JTable
    #38713459
J.Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s.o,

JTable#columnAtPoint(Point)
JTable#rowAtPoint(Point)
...
Рейтинг: 0 / 0
Редактирование JTable
    #38713537
s.o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
s.o
Гость
J.Serge,

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


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