필자가 작성한 프로그램의 GUI를 갱신하려고합니다. 새 GUI에서 JTabbedPane과 위의 두 개의 단추가있는 JPanel을 포함하는 JFrame이 있습니다.Java JTabbedPane get Components
JTabbedPane 안에는 다른 구성 요소가있는 3 개의 JPanel이 있습니다. (버튼, 텍스트 필드 등등) 이제는 모든 구성 요소가 유형에 따라 동일한 작업을 수행해야합니다.
Ex. 텍스트 필드가 있다면 뭔가해야하지만 버튼이 있으면 다른 것을해야합니다.
Container focus = general_panel.getFocusCycleRootAncestor();
FocusTraversalPolicy ftp = focus.getFocusTraversalPolicy();
Component comp = ftp.getFirstComponent(general_panel);
Component first = comp;
while(comp != null){
if(comp instanceof JComboBox){
((JComboBox) comp).setSelectedIndex(0);
}
....
comp = ftp.getComponentAfter(focus, comp);
if(comp.equals(first)){
break;
}
}
그리고 이전 GUI와 JPanel의와
잘 작동 :그래서 이전에이 같은 일을했다. 하지만 tabbedpane을 사용하는 동일한 메서드는 다른 구성 요소 대신 첫 번째 구성 요소와 많은 "null"만받습니다.
이
는에 내장 된 GUI 작성자으로 수행 된 탭 구획javax.swing.JComboBox[,26,24,78x25,layout=javax.swing.plaf.basic.BasicComboBoxUI$Handler,alignmentX=0.0,alignmentY=0.0,[email protected],flags=328,maximumSize=,minimumSize=,preferredSize=,isEditable=false,lightWeightPopupEnabled=true,maximumRowCount=8,selectedItemReminder=Bianco]
null
null
null
null
null
null
null
null
null
null
null
null
null
null
"오래된"GUI와 새 모두 내부 JPanel을 가진 System.out.pritnln (완)의 결과입니다 NetBeans, 아마도 모든 구성 요소의 설정은 같을 것입니다.
그러나 TabbedPane 내의 Panel은 JFrame을 통해 JPanel과 다르게 처리됩니까?
Container focus = pnl_generali.getFocusCycleRootAncestor();
그런 다음 아래의 방법은 나머지를 다음 GUI 클래스는 패널 컨테이너를 만들어 내부
: 경우에 누군가가 지금 같은 상황에서 누적 얻으에
누군가가 같은 상황에 쌓인 경우를 대비해 다음과 같이 해결했습니다. – ySlag