Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 4

JAVA Swing JTable

08.03.2013, 11:28. Показов 1975. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем у меня заполняется JTable, с помощью вектора, и массива, при нажатии на checkbox обновляется база данных на определенной количество считываемое с JTextField_1, вопрос в обновлении самой таблицы, как обновить сразу же после того как отнимается число в базе данных?

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 table = new JTable( new AbstractTableModel() { 
              
               public int getRowCount() { 
                   return data.size(); 
               }
               public int getColumnCount() { 
                   return columnNames.length; 
               } 
               public Object getValueAt(int rowIndex, int columnIndex) { 
                   return data.get(rowIndex).get(columnIndex); 
               } 
            
               public String getColumnName(int column) {
                   return columnNames[column];
               }  
 
               public Class<?> getColumnClass(int columnIndex) {                                                               
                   return new Class[]{Integer.class,String.class, String.class, Integer.class, String.class,String.class,String.class, Boolean.class}[columnIndex];               }  
 
             public boolean isCellEditable(int rowIndex, int columnIndex) {
                 if (columnIndex < 2) {
                     return false;
                 } else {
                     return true;
                 }
               }
                // самая главная часть поддержки редактора ячеек - 
                   // функция сохранения значения которое было введено в данную ячейку
                   public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
                       checkBox.setHorizontalAlignment(SwingConstants.CENTER);  
                        ((Vector) data.get(rowIndex)).set(columnIndex, aValue);
                    //    System.out.print(((Vector) data.get(rowIndex)));
                       if(aValue.equals(true)){
                           //ID продукта на продажу
                           columnIndex =0;
                           //записываем значение в стрин value
                           String value = (String) data.get(rowIndex).get(columnIndex);
                      System.out.print(value);
                      //название продукта что выбран на продажу
                           columnIndex = 1;
                           String value1 = (String) data.get(rowIndex).get(columnIndex);;
                         System.out.print(data.get(rowIndex).get(columnIndex)+"\n");
                        list.add((String) data.get(rowIndex).get(columnIndex));
                        try {
                            Class.forName(driver);
                            con = DriverManager.getConnection(url+db, user, pass);
                            java.sql.Statement st=con.createStatement();
                            // достаем значение количсетва продуктов
                           columnIndex = 3;
                           //выводим кол-во продуктов
                         System.out.print(data.get(rowIndex).get(columnIndex) + "\n");
                         //записываем в лист
                        list.add((String) data.get(rowIndex).get(columnIndex));
                      //quantity of sales                       
                     int t =  Integer.parseInt(textField_1.getText());
                        //значение переменной тоесть количество продуктов 
                        int index = Integer.parseInt((String) data.get(rowIndex).get(columnIndex));
                        //количество продуктов отнимаем количтво продуктов на покупку
                       int countP = index - t;
                       //выводим число продуктов что остались
                       System.out.print(countP);
                       //переводим в стринг чтобы записать в базу данных
                       String value2 = Integer.toString(countP);
                       columnIndex =5;
                       String value4 = (String) data.get(rowIndex).get(columnIndex);
                       //записываем новое значение в базу данных
                        st.executeUpdate("update product set countOFproduct ='"+value2+"' where idproduct='"+value+"'");
                        java.sql.ResultSet rs = st.executeQuery("select count(*) from sales");
                        rs.next();
                        int id = rs.getInt(1) + 1 ;
                        
                       st.executeUpdate("insert into sales(idsales, nameOFproduct,count,prices) values('" + id + "','"+ value1 +"','" + value2 + "','"+ value4 + "')");
 
                        con.close();
                        columnIndex =3;
                        int in = Integer.parseInt((String) data.get(rowIndex).get(columnIndex));
                         getData();
                        fireTableCellUpdated(in, columnIndex);
 
                        } catch (ClassNotFoundException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                     
                          }
                       
                   }
                
 
           });
Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.03.2013, 11:28
Ответы с готовыми решениями:

Отображение JTAble на форме SWING
Здравствуйте. Делаю приложение Swing. Необходимо было сделать в таблице JTable колонку с кнопками. Нашел такой код class CellRender...

Swing.jTable считывание в массив
Работаю со Swing, по сути простая программка для подсчета по формуле, самый сложный компонент на форе -JTable с ним собственно и проблема....

Swing. Увеличение числа ячеек в JTable
Всем добрый день! Есть проблема, которая пока не решается. Программа должна увеличивать/уменьшать по кнопке &quot;+&quot; и &quot;-&quot;...

3
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
08.03.2013, 11:32
представьте код пожалуйста читаемым, обрамив в теги и расставив отступы
0
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 4
08.03.2013, 11:55  [ТС]
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
       table = new JTable( new AbstractTableModel() { 
              
               public int getRowCount() { 
                   return data.size(); 
               }
               public int getColumnCount() { 
                   return columnNames.length; 
               } 
               public Object getValueAt(int rowIndex, int columnIndex) { 
                   return data.get(rowIndex).get(columnIndex); 
               } 
            
               public String getColumnName(int column) {
                   return columnNames[column];
               }  
 
               public Class<?> getColumnClass(int columnIndex) {                                                               
                   return new Class[]{Integer.class,String.class, String.class, Integer.class, String.class,String.class,String.class, Boolean.class}[columnIndex];               }  
 
             public boolean isCellEditable(int rowIndex, int columnIndex) {
                 if (columnIndex < 2) {
                     return false;
                 } else {
                     return true;
                 }
               }
                   // функция сохранения значения которое было введено в данную ячейку
                   public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
                       checkBox.setHorizontalAlignment(SwingConstants.CENTER);  
                        ((Vector) data.get(rowIndex)).set(columnIndex, aValue);
                    //    System.out.print(((Vector) data.get(rowIndex)));
                       if(aValue.equals(true)){
                           columnIndex =0;
                           //ID продукта на продажу
                           String value = (String) data.get(rowIndex).get(columnIndex);
                           columnIndex = 1;
                      //название продукта что выбран на продажу
                           String value1 = (String) data.get(rowIndex).get(columnIndex);;
                        try {
                            Class.forName(driver);
                            con = DriverManager.getConnection(url+db, user, pass);
                            java.sql.Statement st=con.createStatement();
                            // значение количества продуктов
                           columnIndex = 3;
                           //выводим кол-во продуктов
                         System.out.print(data.get(rowIndex).get(columnIndex) + "\n");
                      //quantity of sales                       
                     int t =  Integer.parseInt(textField_1.getText());
                        //значение переменной то есть количество продуктов 
                        int index = Integer.parseInt((String) data.get(rowIndex).get(columnIndex));
                        //количество продуктов отнимаем количтво продуктов на покупку
                       int countP = index - t;
                       //выводим число продуктов что остались
                       System.out.print(countP);
 
                       String value2 = Integer.toString(countP);
                       //price of sales
                       columnIndex =5;
                       String value4 = (String) data.get(rowIndex).get(columnIndex);
                       //update in database 
                        st.executeUpdate("update product set countOFproduct ='"+value2+"' where idproduct='"+value+"'");
                        java.sql.ResultSet rs = st.executeQuery("select count(*) from sales");
                        rs.next();
                        int id = rs.getInt(1) + 1 ;
                        //save values in sales
                       st.executeUpdate("insert into sales(idsales, nameOFproduct,count,prices) values('" + id + "','"+ value1 +"','" + value2 + "','"+ value4 + "')");
 
                        con.close();
                        columnIndex =3;
                        int in = Integer.parseInt((String) data.get(rowIndex).get(columnIndex));
                         getData();
                        fireTableCellUpdated(in, columnIndex);
 
                        } catch (ClassNotFoundException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                     
                          }
                       
                 
                 
                      }
 
           });
0
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 4
11.03.2013, 21:02  [ТС]
Всем спасибо! Проблема решена
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2013, 21:02
Помогаю со студенческими работами здесь

Динамическое добавление колонок в JTable Swing
Всем привет) Использовал таблицы и раньше, но сейчас задача требует создания динамических колонок... Что я делаю: ...

JTable, swing, строки, таблицы, Добавление
Здравствуйте нужна помощь не пойму как сделать что бы данные введенные в jTextField записывались в таблицу. Например 3 столбца в таблице...

Java Swing
Здравствуйте. Как сделать так, чтобы при нажатии на кнопку в JFrame, в этом же окне появились совсем другие элементы, а старые пропали. Т.е...

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

Блокнот на Java (Swing)
Здравствуйте. Я новичок, изучаю Java. В ходе изучения библиотеки Swing я решил написать простой блокнот. Все просто: один класс...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru