2013-05-07 1 views
0

JEditorPaneIndex을 확장하는 JFrame의 새 텍스트를 설정할 때 문제가 발생합니다.JEditorPane에 새 텍스트 설정

package gui; 
... 
public class Index extends JFrame { 
    JEditorPane editorPaneMR = new JEditorPane(); 

public static void main(String[] args) { 
    ... 
} 

public Index() { 
     JButton SearchButton = new JButton("OK"); 
     SearchButton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 
       parser GooBlog = new parser(url); 
       try { 
        GooBlog.hello(); // Go to subclass parser 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     } 
    } 
} 

그리고 파서

라는 서브 클래스의 코드
package gui; 
public class parser extends Index{ 
    String url; 

    public parser (String urlInput){ 
     this.url = urlInput; 
    } 

    public void hello() throws IOException{ 
     editorPaneMR.setText("Hello World"); 
    } 
} 

문제는 내가 OK 버튼을 누를 때 나에게 JEditorPane의 텍스트에 "Hello World"를 표시하지 않습니다입니다! 그리고 그것은 어떤 오류도 보여주지 않습니다. 아무 일도 없었습니다.

+2

여기에 사용 된 콘텐츠 유형 (또는 editorkit)을 확인하십시오. 예를 들어 html은 올바른 html을 제공하지만 일반 텍스트는 제공하지 않습니다. – StanislavL

+2

[* 편집기 창 대 텍스트 창 *] (http://docs.oracle.com/javase/tutorial/uiswing/components/editorpane.html#recap)도 참조하십시오. – trashgod

+0

필자는 에디터 타입 주위의 pbm을 생각하지 않습니다. 서브 클래스에서 editotpaneMR 필드가 어떻게 작동하는지 생각해보십시오 !! –

답변

1

코드 라인

parser GooBlog = new parser(url); 

파서뿐만 아니라 새로운 Index/JFrame뿐만 아니라 인스턴스화합니다. 새로 만든 JFrameJEditorPane은 방법 hello에서 사용되며 프레임이 표시되지 않으므로 아무 것도 발생하지 않습니다.

해결책은 JFrame 또는 JEditorPane에 대한 참조를 hello으로 제공하는 것일 수 있습니다. 다음

Parser gooBlog = new Parser(url); 
gooBlog.hello(Index.this.editorPaneMR); 

주를 통해 호출됩니다

public class Parser { // does no longer extend Index 
    String url; 

    public Parser(String urlInput) { 
     this.url = urlInput; 
    } 

    public void hello(JEditorPane editorPane) { // has argument now 
     editorPane.setText("Hello World"); 
    } 
} 

: 코딩 표준 일반적인 자바에 충실하고 클래스의 대문자 이름을 사용하십시오, 즉 Parser 대신 parser의와 소문자 변수/필드/메소드 이름 gooBlog.

+0

고마워, 너 내가 많이 도와 줬어. –