많은 구성 요소 (JButtons, JLabels, JComboBoxes, JSpinners 등)가있는 복잡한 GUI가 있습니다. 그래서 여러 클래스에 분할해야합니다 (JPanels에 컴포넌트를 추가해야합니다.이 JPanels는 더 큰 JPanels에 추가되며, JPanels는 JTabbedPane에 추가되고 JTabbedPane은 JFrame에 추가됩니다). 사용자에 따라 다르며 일부 구성 요소가 활성화되거나 비활성화되었거나 일부 값을 가져 와서 편집 할 수 없도록 설정합니다 (단어 - 상호 작용). 구성 요소 (상호 작용하는 요소)가 같은 클래스에 있지만, 다른 클래스에만있는 경우 - 결과가 ... AAA !!!다른 클래스에있는 스윙 구성 요소 간의 상호 작용 방법
나는 내가 필요한 것을 explane하는 간단한 예제를 만들었다. 네 가지 수업이 있습니다. 첫 번째는 JFrame의를 생성하고 JTabbedPane에 추가 :
public class MainFrame extends JFrame {
MainFrame() {
super("MainFrame");
go();
}
public void go() {
Tabs tabs = new Tabs();
getContentPane().add(tabs);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 300);
setVisible(true);
}
public static void main(String[] args) {
MainFrame frame = new MainFrame();
}
}
두 번째 클래스는 JTabbedPane에를 만들고 탭으로 두 JPanel의를 추가합니다. 둘째 tab.setEnabledAt (1, 거짓)
public class Tabs extends JTabbedPane {
public Tabs() {
go();
}
public void go() {
TabData data = new TabData();
add(" Data ", data);
TabCalculation calculation = new TabCalculation();
add("Calculation", calculation);
setEnabledAt(1, false);
}
}
번째 클래스 JComboBox에 함께 JPanel을 만들기 :
public class TabData extends JPanel {
public TabData() {
go();
}
JComboBox someData;
public void go() {
String type[] = { " ", "Type 1", "Type 2", "Type 3" };
someData = new JComboBox(type);
add(someData);
someData.addActionListener(new DataListener());
}
public class DataListener implements ActionListener {
public void actionPerformed(ActionEvent ev) {
if (someData.getSelectedIndex() > 0) {
Tabs tabs = new Tabs();
tabs.setEnabledAt(1, true);
}
}
}
}
... 및 제 클래스들을 만들 JPanel. 이 JPanel이 비활성화 된 두 번째 탭입니다. 사용자가 JComboBox (selectedIndex> 0)에서 일부 값을 설정할 때 - 탭을 활성화해야합니다. 하지만 Tabs tabs = new Tabs(); tabs.setEnabledAt(1, true);
도움을받지 못했습니다 ...
어떻게해야합니까? 도와주세요!!! 나는 잠을 잘 수가 없어 ... 나는 일할 수 없다. 나는 항상 그것에 대해 생각하고 해결책을 찾으려고 노력한다 ...
우리에게 4 등급을 보여줍니다. 그리고이 방법으로 클래스를 게시하는 대신 모든 클래스를 단일 파일에 저장하고 실행 가능하고 컴파일 가능하며 문제를 재현 할 수있는 [SSCCE] (http://sscce.org)를 작성하십시오. 귀하의 게시 된 코드가별로 의미가 없습니다 – Sage
각 구성 요소 그룹이 이야기 할 수있는 모델을 설정하고 변경 사항을 관찰하고 /하거나 어떤 유형의 관찰자 패턴을 설정하여 어떤 종류의 콜백/다른 그룹의 청취자가 필요에 따라 변경 사항에 응답합니다 ... – MadProgrammer