그러니까 JTable 이 있고.
이 외에 다른 컴포넌트를 눌렀을때
JTable 이 포커스를 잃으면서 에디팅이 중지되는걸 원하는거 같은데
(클리어셀렉션은 사실 사라지긴 하는데 isEditing 으로 체크해보면 true 긴 하더라)
그러니까 isEditing 으로 하고 나서도 false 가 되는걸 원하는건가?
근데 각 컴포넌트마다 이벤트라는건 무슨 소리야?
어차피 Jtable 에만 포커스리스너를 걸면 (다른 컴포넌트에는 리스너를 안걸어도) 리스너를 지원하는 컴포넌트를 사용자가 누르면
JTable 은 자동으로 포커스를 잃을꺼야. 아니 정확히 말하면 인터페이스 메소드의 focusLost 로 진입한다는건데.
그럼
Jtable 에 포커스 리스너 걸음 -> 사용자가 테이블을 클릭함 -> 테이블이 포커스 얻음 -> 다른 컴포넌트를 클릭함 -> 테이블이 포커스 잃음
인데 중요한건 테이블이 포커스를 잃는 시점에서 다른 조작을 해주지 않으면 테이블의 에디팅 상태는 남는다는거지.
그러니까 그 에디팅상태만 없애면 되는데
그건
jTable1.getCellEditor().cancelCellEditing();
을 호출하면 될꺼야.
그러면 isEditing 으로 체크해도 false 로 뜨는데
아까 댓글 보면 각각의 컴포넌트에 처리..가 필요한가?
내가 뭘 잘못 이해하고 있는건강?
이 외에 다른 컴포넌트를 눌렀을때
JTable 이 포커스를 잃으면서 에디팅이 중지되는걸 원하는거 같은데
(클리어셀렉션은 사실 사라지긴 하는데 isEditing 으로 체크해보면 true 긴 하더라)
그러니까 isEditing 으로 하고 나서도 false 가 되는걸 원하는건가?
근데 각 컴포넌트마다 이벤트라는건 무슨 소리야?
어차피 Jtable 에만 포커스리스너를 걸면 (다른 컴포넌트에는 리스너를 안걸어도) 리스너를 지원하는 컴포넌트를 사용자가 누르면
JTable 은 자동으로 포커스를 잃을꺼야. 아니 정확히 말하면 인터페이스 메소드의 focusLost 로 진입한다는건데.
그럼
Jtable 에 포커스 리스너 걸음 -> 사용자가 테이블을 클릭함 -> 테이블이 포커스 얻음 -> 다른 컴포넌트를 클릭함 -> 테이블이 포커스 잃음
인데 중요한건 테이블이 포커스를 잃는 시점에서 다른 조작을 해주지 않으면 테이블의 에디팅 상태는 남는다는거지.
그러니까 그 에디팅상태만 없애면 되는데
그건
jTable1.getCellEditor().cancelCellEditing();
을 호출하면 될꺼야.
그러면 isEditing 으로 체크해도 false 로 뜨는데
아까 댓글 보면 각각의 컴포넌트에 처리..가 필요한가?
내가 뭘 잘못 이해하고 있는건강?
일단 선 리플
나랑 똑같은 문제를 가지고 구글링 했다는데 결국 실패했다는 양키의 글
http://www.velocityreviews.com/forums/t389427-jtable-cell-focus.html
횽이 거의 정확히 이해 했는데...약간 상이한게
그러하다
이것은 타이밍이다
댓글을 달았는데 이미 많은 댓글이 추가되어있음 응?
Jtable 에 포커스 리스너 걸음 -> 사용자가 테이블을 클릭함 -> 테이블이 포커스 얻음 -> 사용자가 cell 을 더블클릭하여 에디팅 시도함 -> 왠지 모르겠지만 테이블이 포커스 잃음 -> 다른 컴포넌트를 클릭함 -> cell 에디팅 상태가 계속 남아있음
사용자가 cell 을 더블클릭하여 에디팅 진입하는 시점에서 focus 를 잃어버리니, jTable1.getCellEditor().cancelCellEditing(); 어느지점에 넣어야 할지 애매모호해짐....크헝
??? 아니 cell 을 더블클릭해서 에디팅하는데 포커스를 잃는다고???
아니다. 이게 아니다. 잠깐만.
그러함 // 어!!!!!!!!!!!! 바로 그게 문제야 !!!!!!!!!!!!!!!!!
??? 아니 cell 을 더블클릭해서 에디팅하는데 포커스를 잃는다고??? <<<<<<< 요게 문제임..슈ㅣ발 좆같다 ㅠㅠ
음. 근데 이상한데. 왜 내 JTable 에선 더블클릭하면 에디팅으로 들어가지 않는거지?
isCellEditable(row, column);
아. 대충 알꺼 같다. 지금 내꺼는 걍 이것만 테스트한다고 만들어서 그렇지만 꼬꼬닭횽꺼는 완성본일테니까 객체가 생성되면서 다른 컴포넌트가 일단 포커스를 얻은 상태에서 테이블을 더블클릭해서 에디팅으로 들어가려고 하면 테이블 자체는 포커스를 얻지만 다른 컴포넌트가 포커스를 잃은 상태라서 그럴꺼 같은데..?
형꺼 테이블이 에디팅이 안되는 이유가 저 속성이 안먹어있어서..특정 row 의 컬럼만 에디팅 시킬수 잇음. 저 속성 줘봐. 그리고 돌려봐
그럼 시발 내가 무슨 소리 하는지 완벽이해 될거임 ㅠㅠ
에디팅까진 됨. 다만 더블클릭이 아니라 선택된상태에서 걍 키보드를 치는거지만.. 음. is.. 이건 보니까 set 종류의 메소드가 아닌데.. 이거 횽이랑 나랑 뭔가 핀트가 어긋나고 있는거 같은데. 횽이 소스주면 좋겠는데 일하는거라니까 달라고 할수도 업ㅂ네..
그럼 하다못해 Jtable 부분만 조금이라도 보여줄수 없을까? 이건 봐야 알꺼같앜ㅋㅋ