JTabbedPane이 있는데 사용자가 선택하면 탭 1 구성 요소로 대체해야합니다. 응용 프로그램 시작시 올바른 구성 요소를 추가 할 수 없습니다. 생성 할 전체 데이터가 없기 때문에 직접 구성 요소를 추가 할 수 없습니다. 이 탭 한 후 탭 다른 탭을 제거하고, 중복선택 탭에서 JTabbedPane 구성 요소를 변경하십시오.
int tabTochange = 1;
tabbedPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
if (tabbedPane.getSelectedIndex() == tabTochange)
{
JComponent component = generataComponent();
tabbedPane.removeTabAt(tabTochange); // Remove old tab
// add new one
tabbedPane.insertTab("title", null, component, "tip", tabTochange);
}
}
});
하지만이 코드는 작동하지 않습니다
나는 이런 식으로 뭔가를해야합니다.
이 방법을 사용하여 tabbedPane 탭 1 첫 번째로 만든 그대로, 또한 getComponentAt (tabTochange) 구성 요소 특성을 수정했습니다. 어쩌면 다시 그리기를 강요 할 필요가 있을까요? – Alvins
일반적인 접근법은'revalidate()'와'repaint()'입니다.'CardLayout'은 그것을 처리합니다. – trashgod