JTable TAB Focus
От: Francis Goya Ниоткуда  
Дата: 27.01.06 15:31
Оценка:
Привет!
Я делаю вот так:

          FocusTraversalPolicy configurationFocus = new FocusTraversalPolicy() {
            public Component getComponentAfter(Container focusCycleRoot, Component aComponent) {
                if (aComponent.equals(jCheckBoxNonCodedReport)){
                    return jCheckBoxPerWorktypeCoding;
                }else if (aComponent.equals(jCheckBoxPerWorktypeCoding)){
                    return jCheckBoxDontDoCoding;
                } else if (aComponent.equals(jCheckBoxDontDoCoding)){
                    return jSpinerMaxDiagnosisCode;
                }else if (aComponent.equals(jSpinerMaxDiagnosisCode)){
                    return jcDProcedureCS;
                }else if (aComponent.equals(jcDProcedureCS)){
                    return jButtonAddProcedureSystem;
                } else if (aComponent.equals(jButtonAddProcedureSystem)){
                    return jButtonRenameProcedureSystem;
                } else if (aComponent.equals(jButtonRenameProcedureSystem)){
                    return jcDDiagnosisCS;
                } else if (aComponent.equals(jcDDiagnosisCS)) {
                    return jButtonAddDiagnosisSystem;
                } else if (aComponent.equals(jButtonAddDiagnosisSystem)) {
                    return jButtonRenameDiagnosisSystem;
                } else if (aComponent.equals(jButtonRenameDiagnosisSystem)) {
                    return columsHeaderList;
                } else if (aComponent.equals(columsHeaderList)){
                    return jCheckBoxNonCodedReport;
                }
                return jCheckBoxNonCodedReport;
            }

            public Component getComponentBefore(Container focusCycleRoot, Component aComponent) {
                if (aComponent.equals(jCheckBoxNonCodedReport)){
                    return columsHeaderList;
                }else if (aComponent.equals(jCheckBoxPerWorktypeCoding )){
                    return jCheckBoxNonCodedReport;
                } else if (aComponent.equals(jCheckBoxDontDoCoding)){
                    return jCheckBoxPerWorktypeCoding ;
                } else if (aComponent.equals(jSpinerMaxDiagnosisCode)){
                    return jCheckBoxDontDoCoding;
                }else  if (aComponent.equals(jcDProcedureCS)){
                    return jSpinerMaxDiagnosisCode;
                }else if (aComponent.equals(jButtonAddProcedureSystem)){
                    return jcDProcedureCS;
                } else if (aComponent.equals(jButtonRenameProcedureSystem)){
                    return jButtonAddProcedureSystem;
                } else if (aComponent.equals(jcDDiagnosisCS)) {
                    return jButtonRenameProcedureSystem;
                } else if (aComponent.equals(jButtonAddDiagnosisSystem)) {
                    return jcDDiagnosisCS;
                } else if (aComponent.equals(jButtonRenameDiagnosisSystem)) {
                    return jButtonAddDiagnosisSystem;
                }  else if (aComponent.equals(columsHeaderList)){
                    return jButtonRenameDiagnosisSystem;
                }
                 return jCheckBoxNonCodedReport;
            }

            public Component getDefaultComponent(Container focusCycleRoot) {
                return jCheckBoxNonCodedReport;
            }

            public Component getFirstComponent(Container focusCycleRoot) {
                return jCheckBoxNonCodedReport;
            }

            public Component getLastComponent(Container focusCycleRoot) {
                return columsHeaderList;
            }

        };
 this.setFocusTraversalPolicy(configurationFocus);


columsHeaderLis — это таблица, вот когда по табу фокус передаёться на неё то можно только выйти по CTRL + TAB и то не jCheckBoxNonCodedRepor который по дефаулту должен быть, но собственно проблема в том как реализовать чтобы при проходе либо в перёд по всем ячейкам таблицы, либо назад фокус передавался на следующий компонент контейнера на котором они все находяться??
Я сначала импламентировал FocusTraversalPolicy(), увидел что что-то не так , потом пошол на сан, глянул доку но там вродм так же как и у меня здесь, тоесть я так понимаю мне надо переопределить какие — то листенеры или ещё что-то самой таблицы, натолкните на нужную мысль плиз.

WBR, Francis.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.