jTable과 jButton이 있습니다. 클릭하면 버튼의 actionPerformed 메서드는 while 루프가 포함 된 다른 메서드를 호출하고 루프를 통해 테이블 모델 (DefaultTableModel)에 행을 추가합니다. while 루프는 몇 분 동안 실행될 수 있으므로 매번 테이블에 추가되는 행을 GUI에 표시하려고합니다. 그러나 지금은 루프가 완료된 후 테이블에 모든 행을 함께 추가하므로 몇 분 동안 행 수가 하나씩 증가하는 대신 0 행이 포함 된 테이블을 표시하는 데 몇 분이 소요됩니다. 그리고 즉시 수천을 가졌습니다. 나는 updateUI를 호출하고, 테이블에서 다시 칠하고, 모델에서 fireTabledDataChanged를 호출하는 등의 시도를했지만, 아무런 차이가 없다. 나는 또한 스윙 타이머를 사용해 보았지만 아무 소용이 없었다. 덕분에 도움이나 조언을 주시면 감사하겠습니다.루프를 통과하는 jTable에 행을 추가 하시겠습니까?
1
A
답변
3
를 통해 EDT에 떨어졌다 가져옵니다 Runnable
에서 수행 할 수 튜토리얼 Concurrency EDT가 작동하는 방법에 대해 자세히 설명합니다. 자신 만의 Thread를 만들고 SwingUtilties.invokeLater()를 사용하는 것 외에도 SwingWorker를 사용하는 새로운 접근 방법을 사용할 수도 있습니다. 이 자습서에는 예제가 들어 있습니다. 나는에 updateUI를 호출하려고했습니다
,
그런 일을하지 마십시오. 문제가 해결 되더라도 잘못된 해결책입니다. UI를 업데이트하지 않고 구성 요소를 업데이트하고 있습니다.
1
DefaultTableModel
을 사용하는 경우 각 반복 중에 모델에 addRow
을 호출하면 모델이 업데이트되어 JTable
을 업데이트해야합니다. 테이블은 그것이 다시 칠해 지도록 요청할 것이고 그 요청은 EDT로 갈 것입니다. 불행하게도, 장기간에 걸친 프로세스는 EDT에서 처리되는 다른 요청을 보류하고 있습니다. 당신이 할 수있는 최선의 것은 당신의 버튼을 작업자 스레드에서 프로세스를 실행해야하고, 해당 스레드는 그 addRow
호출이 스윙에서 섹션을 읽어 SwingUtilities.invokeLater
관련 문제
- 1. JTable에 항목 추가
- 2. 루프를 통과하는 XMLList - 이상한 동작
- 3. 하단에 downarrow에 jTable에 행 추가
- 4. JTable에 데이터를 삽입 하시겠습니까?
- 5. 어린이 컨트롤을 통과하는 동안 무한 루프를 피하십시오
- 6. JTable에 행을 삽입 할 때 반복되는 값
- 7. mysql_fetch_array 모든 행을 추가 하시겠습니까?
- 8. JTable에 HashTable?
- 9. Android에서 테이블 행을 동적으로 추가 하시겠습니까?
- 10. ASP.NET의 테이블에 행을 동적으로 추가 하시겠습니까?
- 11. 아이폰에 테이블에 열과 행을 추가 하시겠습니까?
- 12. 전체 테이블을 다시로드하거나 수동으로 행을 추가 하시겠습니까?
- 13. GridView/DataGrid/Repeater에 행을 동적으로 추가 하시겠습니까?
- 14. 쉽게 모든 데이터베이스보기를 netbeans가있는 jtable에 바인드 하시겠습니까?
- 15. JTable을 다른 JTable에 어떻게 추가 할 수 있습니까?
- 16. 제공된 균열을 통과하는 코드 행을 덮기위한 테스트를 작성하는 방법
- 17. JavaScript로 Timed 루프를 취소 하시겠습니까?
- 18. 사용자가이 루프를 다시 작성 하시겠습니까?
- 19. gridview에 행을 더 추가
- 20. jtable에 버튼 추가하기
- 21. JTableComponent와 JComboBox를 JTable에 넣으십시오.
- 22. JTable에 문자열 표시
- 23. JTable에 arraylist 데이터를 추가합니다.
- 24. 안녕하세요, jTable에 도움이 필요합니다.
- 25. 새 항목을 추가하기 위해 UITableView에 행을 추가 하시겠습니까?
- 26. 예외를 일으키는 소스 행을 기록하고 사용자 정의 정보를 추가 하시겠습니까?
- 27. Silverlight 데이터 표에서 행을 편집, 추가 및 삭제 하시겠습니까?
- 28. 새 행을 추가 한 후 슬릭 그리드를 다시 정렬 하시겠습니까?
- 29. 동적으로 편집 모드에서 UITableView에 추가로 새 행을 추가 하시겠습니까?
- 30. DataGridView에서 행을 삭제 하시겠습니까?
내 대답은 내가 네가 게시 한 것을 본 것과 거의 똑같을 것이라고 생각했다. :) –