Team Project/무인 도서 대여,반납기

RentalPage 2.TopPanel constructor

ChoiDooSic 2021. 9. 14. 11:17

1.생성자는 GridBagLayout으로 구성되어있다.

 

2.처음 테이블에 들어갈 초기값은 initTableBookList() 메서드로 이중배열 데이터값을 받고 columnNames배열을 통해 컬럼네임값을 받는다.(initTableBookList() 은 이전 글에 포스팅되어있다)

 

3. DefaultTableModel의 객체인 model을 생성하여 책의 데이터 값과 컬럼값을 넣어준다
public boolean isCellEditable( , ) return false; 를 해줄시 테이블에 수정이 불가능한 상태가 된다.
DefaultTableModel을 사용하는 이유는 JTable로 바로 데이터를 넣으면
테이블과 직접 연결한 상태가 되기때문에 한번 만든 테이블의 값을 변경할 수 없기떄문이다.

 

4. 모델의 값을 JTable에 넣어준다 앞서 3번에서 설명했듯이 번거롭게 2번 일을 하는가 하면
바로 테이블에 값을 넣으면 값을 수정할 수 없기 때문이다.
조금 번거로워도 이렇게 모델을 생성하여 값을 넣어줄시에는 모델의 값만 변경하면 테이블의 값을 계속 변경할 수 있다.

 

5. 페이지를 옮기는 버튼들은 FlowLayout으로 구성되어있다

 

[table.addMouseListener(new MouseAdapter())] 에 관한 설명 시작

6. 마우스를 2번클릭시 작동할수 있도록 e.getClickCount() == 2 if문을 이용하여 클릭카운트 값을 받아 실행하여준다

 

7. 책을 빌릴때에 이미 대여가된 책은 대여상태가 N으로 변경되있기 때문에 N인책을 선택하였을시에는

다이얼로그를 이용하여 대여가 불가능한 책임을 알려주며,
한번에 빌릴수 있는 책의 권수는 3권이기 때문에 고른 책의 권수를 count로 체크해 
3권이상일때에는 더이상 선택할 수 없다는 다이얼로그를 띄워준다.

 

8. 위에 이프문에 아무이상이 없다면 내가 선택한 책을 booklist(책 목록)에서 삭제해주고
UserSelection에 넣어주고 StoregeBook에도 담아준다(이 부분에 대해서는 다음 글에서 설명예정)
(간략히 설명하면 UserSelection과 StoregeBook은 윗 테이블에서 값을 지우고 
책을 재검색 할시에 책이 윗테이블에서 선택되어 아래테이블로 이동된 후의 목록을 띄워주기 위한 저장소 역할을 한다)

 

9. 현재 테이블은 수정 불가능의 상태이기 때문에
 currentPage에 선택된 버튼의 소스를 받아 doclick()으로 강제 클릭하여 선택되게 해준다;

 

10. 더블클릭하여 선택된 정보를 UnderPanel(하단 테이블)의 model값에 추가하여준다.


11. new RentalTableSize를 해주는 이유는 새 책이 들어가며 테이블의 틀이 흐트러져
사이즈를 조정해주기 위해 책이 옮겨질때에 리사이즈를 해주는 것이다.