나는 사용자에게 보여주고 싶은 두 개의 패널을 가지고있다. JTabbedPane에 추가하기로 결정했습니다. 또한 사용자가 동시에 두 사람의 옆에서 나란히 볼 수 있도록하고 싶습니다. 그래서 난 내 JTabbedPane에에 두 개의 패널을 추가 한 후 나는 같은 JSplitPanel을 만들어 :JSplitPanel (또는 JTabbedPane)의 문제점은 무엇입니까?
tabs.addTab("Align Image Points", imageControlPanel);
tabs.addTab("Align Map Points", mapControlPanel);
JSplitPane splitPane = new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT, true, imageControlPanel,
mapControlPanel);
tabs.addTab("Side by side view", splitPane);
결과 JTabbedPane에 단 하나 개의 탭이! JSplitPane을 제거하면 모든 것이 정상적으로 작동합니다. 두 개의 탭. 그런 다음 문제를 단순화하여 여기 게시하고 시도해 보았습니다.
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame("Test");
JButton b1 = new JButton("First");
JButton b2 = new JButton("Second");
JSplitPane s = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,b1,b2);
JTabbedPane tabs = new JTabbedPane();
tabs.addTab("First", b1);
tabs.addTab("Second", b2);
tabs.addTab("Both", s);
f.getContentPane().add(tabs);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}
다른 문제가 발생했습니다. 3 개의 탭을 표시하지만 세 번째 탭의 분할 창에는 버튼이 표시되지 않습니다!
제 질문은 JSplitPanel의 문제점은 무엇입니까? 다른 탭에 이미 표시된 개체를 표시 할 수 없습니까? 그것은 말도 안돼. 도와주세요.
(참고 : 나는 그들이 동일한 참조 할 수 원하는대로 내가 표시하려고 오전 구성 요소를 복제하고 싶지 않아)
예, 탭에 "addChangeListener"를 추가 할 수 있으며 GUIView 인스턴스 하나만 만들 수 있으며 해당 변경 목록에 따라 gui 구성 요소를 앞뒤로 전환 할 수 있습니다. – Tiger
답변 해 주셔서 감사합니다. 그것은 옳은 것 같습니다 (이 문제를 직접 해결 했으므로).하지만 실제로 구현할 때마다 더 나은 방법이 필요한 다른 프로그램을 찾았습니다. –