Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 27
1

Изменение даты в ячейке JTable

16.04.2010, 08:07. Показов 2455. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
делаю запрос к MySQL через jdbc, вывожу р-т запроса в JTable через class DataBaseTableModel extends AbstractTableModel, где
isCellEditable = true, также переопределены
getValueAt(int rowIndex, int columnIndex)
и
setValueAt(Object aValue, int rowIndex, int columnIndex)

Все строковые и числовые поля успешно редактируются, двойной щелчок на ячейке и можно редактировать, а вот ячейки с датой не редактируются.

Кто сталкивался с такой проблемой, подскажите как изменить дату??

Заранее благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2010, 08:07
Ответы с готовыми решениями:

Изменение объекта в ячейке JTable
Всем привет! Идея такова, в ячейках JTable у нас будут объекты класса - наследника JLabel. ...

Кнопка в ячейке таблицы JTable
Добрый день. Подскажите пытаюсь вставить кнопку(JButton) в ячейку таблицы (JTable). У меня есть...

Как "поймать" двойной клик в ячейке JTable?
Привет всем. Подскажите, плиз, как "поймать" двойной клик в ячейке JTable?

Изменение значения в ячейке в зависимости от изменения в другой ячейке
Здравствуйте. Помогите составить формулу для решения вопроса. Допустим есть два столбца (А и В), в...

4
mishgun
17.04.2010, 00:51 2
код покажите
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 27
19.04.2010, 17:06  [ТС] 3
Java
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class SimplyWnd extends JFrame {
...
SimplyWnd(String name,n4_BrowseTable _parent,String query) {
        jt1 = new JTable();
        jt1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        jt1.setAutoCreateColumnsFromModel(false);
...
        dmw1 = new DataBaseTableModel(parent);
        jt1.setModel(dmw1);
        dmw1.runSQL(query);
 
        MakeColumns();.
...
}
 
 
 
class DataBaseTableModel extends AbstractTableModel {
 
    n4_BrowseTable parent;
    DataBaseConnection conn2;
 
    ArrayList MainColumn;
    String []columnName ;
    String TableName;
    Class []columnClass;
    int nRow,nCol;
...'
 
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        generateForUpdate(aValue, rowIndex,  columnIndex,getValueAt(rowIndex,columnIndex));
        //обеспечивает отображение изменений
        ((ArrayList)(MainColumn.get(rowIndex))).set(columnIndex,aValue);
        try {
            conn2.stmt.executeUpdate(ForUpdate);
        } catch (Exception e) {            e.printStackTrace();            }
        this.fireTableDataChanged();
    }
 
public void runSQL{ 
...//заполняет по рeзултату запроса поле MainColumn
}
 
}
 
    private void MakeColumns() {
        MyDefaultTableCellRenderer renderer = new MyDefaultTableCellRenderer();
        //renderer.getTableCellRendererComponent()
        for (int i=0;i<dmw1.nCol;i++) {
            //TableColumn tc = new TableColumn(i,75,new MyDefaultTableCellRenderer(),null);
            TableColumn tc = new TableColumn(i,75,renderer,null);
            jt1.addColumn(tc);
        }
0
0 / 0 / 0
Регистрация: 26.05.2009
Сообщений: 81
19.04.2010, 18:59 4
Ну вообщето хотелось бы взглянуть на getValueAt...
но есть подозрение что 'стандартного' editor-a для дат нет...
соответственно предлагаю поствить свой editor
0
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 27
19.04.2010, 20:34  [ТС] 5
проблема в том что стандартный editor, после того как изменишь дату не сохраняет форматирование определнное в TableCellRenderer.

т.е. я переопределяю TableCellRenderer для колонок и он выводит текст например синим и форматирует дату (в базе данных было dd-mm-yyyy hh:mm:ss , а я делаю формат yyyy/mm/dd без времени только дату),

использую стандартный DefaultCellEditor, меняю дату например год с 2004 на 2003 нажимаю Enter, и форматирование переопределённого TableCellRenderer-а пропадает, т.е. дата теряет синий цвет, и начинает отображаться как в БД dd-mm-yyyy hh:mm:ss

не знаю как с этим бороться. как заставить CellRenderer отображать данные после редактирования тоже синим цветом.???

Может кто-нибудь сталкивался? помогите советом или ссылочкой
0
19.04.2010, 20:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2010, 20:34
Помогаю со студенческими работами здесь

Изменение данных в ячейке на основании значения в соседней ячейке
Вот такая ситуация - на листе есть два столбца, в одном из них формула &quot;ИНДЕКС...ПОИСКПОЗ&quot;, которая...

Короткий формат даты в JTable
Есть связка JBuilder7 и msAccess2000. В JTable дата отображается только в полном формате, хотя в...

Изменение значения в таблице при изменение в ячейке DBGridEh
Имею на форме DBGridEh, DataSet, ADOTable в таблице есть поля boolean. Не могу понять как при...

Изменение размера JTable
Hi ! есть JFrame главный (MDI контейнер) в нем два JInternalFrame в первом JInternalFrame...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru