2012-12-07 3 views
0

표시되는 현재 JEditorPane을 가져올 수있는 방법이나 방법이 있는지 궁금합니다. 예를 들어 여러 탭을 만들 수있는 JFrame이 있습니다. 탭이 작성 될 때마다, 새로운 JEditorPane 오브젝트가 작성되어 그 내용이 탭에 표시됩니다. 현재 새 탭을 열거 나 탭을 닫을 때마다 현재 탭의 인덱스를 가져 오는 ChangeListener를 구현했습니다. 새 탭을 열거 나 탐색 한 경우이 탭에있는 현재 JEditorPane 객체를 가져 오려고 할 때마다 수행 할 작업입니다. 내가 성취 할 수있는 방법이 있습니까?현재 표시된 JEditorPane을 가져옵니다.

죄송합니다. 질문이 다소 모호하면. 사전에

감사합니다.

+0

변수에 저장 ..? – Brian

+0

@ 브리앙 내가 성취하려고하는 것이 아니라. 예를 들어, 다른 탭으로 이동하는 경우, JEditorPane 객체를 저장하는 변수는 열어 둔 최신 탭 중 하나를 저장하는 것이며, 탭은 방금 탐색 한 것이 아닙니다. 그것이 어떤 의미인지 모릅니다. 열려 있거나 탐색 된 탭의 JEditorPane을 저장하는 변수에 원합니다. 기본적으로 현재 표시되고있는 탭입니다. –

+1

목록에 저장 하시겠습니까? –

답변

1

JPanel를 서브 클래스 대신 탭 창에 사용자 정의 JPanel를 추가하는 것이 작업을 수행하는 가장 좋은 방법 :

public class EditorPanel extends JPanel { 

    private JEditorPane editorPane; 

    // ... 

    public EditorPanel() { 
     // ... 
     editorPane = new JEditorPane(...); 
     super.add(editorPane); 
     // ... 
    } 

    // ... 

    public JEditorPane getEditorPane() { 
     return editorPane; 
    } 
} 

새 탭 추가 : 다음

JTabbedPane tabbedPane = ... ; 
tabbedPane.addTab(name, icon, new EditorPanel()); 

그리고 당신이 필요로하는 탭 패널을 사용하여 액세스하려면 다음을 입력하십시오.

Component comp = tabbedPane.getComponentAt(i); 
if (comp instanceof EditorPanel) { 
    JEditorPane editorPane = ((EditorPanel) comp).getEditorPane(); 
} 

이것은 bett입니다. 별도의 목록을 유지 관리하고 탭 분할 창 인덱스와 함께 유지하려고 시도 할 수도 있습니다.

+0

감사합니다. 이것은 아주 좋은 해결책입니다. 나는 두 가지 해결책을 모두 시도 할 것이고 내가 지금 더 좋은 코드에 맞는 것을 보게 될 것이다. 그러나 어쨌든 고마워. –