> Java > java지도 시간 > 내 GUI 디스플레이가 일관되지 않는 이유는 무엇이며 삭제 후 테이블을 업데이트하려면 어떻게 해야 합니까?

내 GUI 디스플레이가 일관되지 않는 이유는 무엇이며 삭제 후 테이블을 업데이트하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-11-12 10:33:01
원래의
460명이 탐색했습니다.

Why is My GUI Display Inconsistent and How Can I Update the Table After Deletion?

AbstractTableModel GUI 표시 문제

AbstractTableModel을 사용하여 GUI를 생성하기 위해 제공되는 Java 코드에는 표시 및 관련 문제가 몇 가지 있습니다. 두 번째 GUI 창(Gui2 클래스)의 기능.

첫 번째 문제: 일관성 없음 GUI 모양

Gui2 창이 두 가지 다른 방식으로 나타나는데, 하나는 빈 패널이 있고 다른 하나는 테이블과 버튼이 있다고 언급하셨습니다. 이러한 일관되지 않은 동작은 일반적으로 GUI 구성 요소의 잘못된 초기화 또는 표시로 인해 발생합니다.

Gui2 클래스의 생성자에서 패널이 생성되고 레이아웃과 제약 조건이 정의되지만 구성 요소(텍스트 필드, 버튼 및 테이블)은 패널에 추가되지 않습니다. 이 문제를 해결하려면 add() 메서드를 사용하거나 각 구성 요소 유형에 대한 특정 메서드를 호출하여 패널에 구성 요소를 추가해야 합니다.

두 번째 문제: 삭제 후 테이블 업데이트

"선택한 행 삭제" 버튼의 ActionListener가 삭제 쿼리를 트리거하고 성공 메시지를 표시하지만 테이블은 삭제를 반영하기 위해 자동으로 업데이트되지 않습니다. 이 문제는 테이블 모델이 업데이트되는 방식과 관련이 있습니다.

데이터베이스에서 행을 삭제할 때 기본 테이블 모델을 업데이트하여 데이터 구조에서 삭제된 행을 제거해야 합니다. AbstractTableModel은 이러한 목적으로 특별히 fireTableRowsDeleted()라는 메서드를 제공합니다.

이 문제를 해결하려면 삭제 버튼의 ActionListener에 삭제 성공 후 행을 추가하여 fireTableRowsDeleted()를 호출해야 합니다. 그러면 JTable에 데이터가 변경되었음을 알리고 이에 따라 디스플레이가 업데이트됩니다.

추가 고려 사항:

  • SwingWorker 클래스는 검색에 사용됩니다. 백그라운드에서 ResultSet의 행을 처리하여 대규모 데이터 세트의 표시를 최적화합니다.
  • JDBCWorker 클래스, JDBCModel 내에 중첩되어 SwingWorker의 행을 처리하고 게시() 및 process() 메서드를 사용하여 테이블 모델을 업데이트합니다.
  • 행 메타데이터는 ResultSetMetaData를 사용하여 추출되어 열 수와 열 이름을 결정합니다.
  • 인클로징 크기를 맞춤설정하기 위해 getPreferredScrollableViewportSize() 메서드가 재정의되었습니다. JScrollPane.
  • SwingWorker의 진행 속성은 데이터 검색 중 진행 상황을 표시하는 데 사용됩니다.

위 내용은 내 GUI 디스플레이가 일관되지 않는 이유는 무엇이며 삭제 후 테이블을 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿