2013-07-03 3 views
1

javascript에서 JApplet 함수를 호출하려고하는데 작동하지 않습니다. 이건 내 HTML 코드가javascript에서 JApplet 함수를 호출하는 함수가 없습니다.

public class Main extends JApplet implements ActionListener { 
    private static final long serialVersionUID = 1L; 
    private JTextArea m_textArea; 
    private JButton m_button; 
    public String mypublicvariable = "foo"; 

    public Main() { 
     this.setLayout(null); 

     m_textArea = new JTextArea(); 
     m_textArea.setBounds(25, 25, 200, 100); 
     m_textArea.setText("some value"); 
     getContentPane().add(m_textArea); 

     m_button = new JButton("crypt"); 
     m_button.setBounds(25, 150, 100, 20); 
     m_button.addActionListener(this); 
     getContentPane().add(m_button); 
    } 

    public static void main(String[] args) { 
     new Main(); 
    } 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
     if(arg0.getSource().equals(m_button)) { 
      m_textArea.setText("worked"); 
     } 
    } 

    public void doSomething() { 
     m_textArea.setText("sdlkjfdöjdlkjfsfsyfhudjfdsfj"); 
    } 
} 

입니다 :

내 애플릿의 코드입니다

<!DOCTYPE HTML> 
<html> 
    <head> 
    </head> 
    <body> 
     <applet name="TestApplet" id="TestApplet" code="main.Main" archive="test.jar" width="500" height="500" /> 
     <script> 
      console.warn(document.TestApplet.mypublicvariable); 

      document.TestApplet.doSomething(); 
     </script> 
    </body> 
</html> 

나도는 (정의되지 않은) 내 공용 변수의 값을 얻을도 나는 내 공개를 호출 할 수 있습니다 함수 (document.TestApplet.doSomething은 함수가 아닙니다). 설명을 위해 Main 클래스의 전체 프로젝트를 jar 파일로 내 보낸 다음 test.jar이라는 이름으로 저장했습니다. 내 수업 Main은 패키지 메인에 있습니다.

+0

@AndrewThompson 감사합니다. 그것은 문제를 해결했습니다. 질문을 완료로 표시하고 업 그레 이드 할 수 있도록 답변을 게시하고 싶습니까? – Niklas

답변

0

애플릿 요소가 잘못되었습니다. 결코 자기 폐쇄적 인 요소가 될 수는 없습니다. 견고성을 위해 scriptable 플래그를 선언해야합니다.

관련 문제