|
|
|
Ошибка при удалении записи из таблицы
|
|||
|---|---|---|---|
|
#18+
Добрый день. Подскажите, пожалуйста, с чем может быть связана ошибка. Сам никак найти не могу Класс таблицы: Код: 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. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. Класс потока: Код: 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. Ошибка может возникать при удалении 3-й записи, а может и 21. Причем вот эта часть: "1 >= 1" почти всегда разная. Понятно, что я где-то выхожу за границы массива, но где - не могу понять Текст ошибки: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1 at java.util.Vector.elementAt(Vector.java:474) at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:294) at javax.swing.plaf.basic.BasicTableHeaderUI.paint(BasicTableHeaderUI.java:648) at javax.swing.plaf.synth.SynthTableHeaderUI.paint(SynthTableHeaderUI.java:173) at javax.swing.plaf.synth.SynthTableHeaderUI.update(SynthTableHeaderUI.java:144) at javax.swing.JComponent.paintComponent(JComponent.java:780) at javax.swing.JComponent.paint(JComponent.java:1056) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5219) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1572) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1495) at javax.swing.RepaintManager.paint(RepaintManager.java:1265) at javax.swing.JComponent._paintImmediately(JComponent.java:5167) at javax.swing.JComponent.paintImmediately(JComponent.java:4978) at javax.swing.RepaintManager$4.run(RepaintManager.java:824) at javax.swing.RepaintManager$4.run(RepaintManager.java:807) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:807) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:782) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:731) at javax.swing.RepaintManager.access$1300(RepaintManager.java:64) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1720) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 13:05 |
|
||
|
Ошибка при удалении записи из таблицы
|
|||
|---|---|---|---|
|
#18+
Обновления UI нельзя вызывать из других потоков. https://docs.oracle.com/javase/tutorial/uiswing/concurrency/ Нужно синхронизировать с EDT. Ну и вот с этим тоже большая проблема: http://www.oracle.com/technetwork/java/codeconvtoc-136057.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 13:12 |
|
||
|
Ошибка при удалении записи из таблицы
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОбновления UI нельзя вызывать из других потоков. https://docs.oracle.com/javase/tutorial/uiswing/concurrency/ Нужно синхронизировать с EDT. Ну и вот с этим тоже большая проблема: http://www.oracle.com/technetwork/java/codeconvtoc-136057.html Просто тогда непонятно, почему ошибка не сразу вылетает. Да и таблица обновляется. То есть если я уберу отдельный поток и вставлю код с него в основной поток, то ошибок я больше получать не буду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 13:46 |
|
||
|
Ошибка при удалении записи из таблицы
|
|||
|---|---|---|---|
|
#18+
TimeinПросто тогда непонятно, почему ошибка не сразу вылетает. Да и таблица обновляется. Потому что так себя проявляют ошибки многопоточности. Порядок операций не детерминирован. Один раз первый поток выполняется раньше, другой раз - позже, чем обновление экрана. Вот в одном случае есть ошибка, в другом нет. Исключения, кстати, могут быть и другие. TimeinТо есть если я уберу отдельный поток и вставлю код с него в основной поток, то ошибок я больше получать не буду? Да, но тогда будут фризы UI в моменты обращения к БД, что тоже плохо. Лучше изучить SwingWorker ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39033893&tid=2125022]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 398ms |

| 0 / 0 |
