2014-10-11 7 views
2

Вот мое простое приложение, которое я построил, чтобы показать свою проблему (оригинальное приложение огромно, но проблема такая же).Как показать апплет в Java?

Проблема в том, что я не могу показать JApplet (и ничего не могу показать внутри него). Работа в Netbeans, Java SE. Можете ли вы рассказать мне, что я пропустил?

package testjava; 

import java.awt.BorderLayout; 
import java.awt.Component; 
import javax.swing.JApplet; 
import javax.swing.JButton; 
import javax.swing.JPanel; 

/** 
* 
* @author Epsilon 
*/ 
public class TestJava extends JApplet implements Runnable { 

    protected Thread ivThread; 

    protected JPanel p1, p2; 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 

     JApplet applet = new TestJava(); 
     applet.init(); 

     applet.start(); 

    } 

    @Override 
    public void init() { 
     super.init(); 

     setSize(880, 710+28); 

     setLayout(new BorderLayout()); 
     setVisible(true); 

     p1 = new JPanel(); 
     add(p1, BorderLayout.CENTER); 

     p2 = new JPanel(); 
     add(p2, BorderLayout.SOUTH); 

     p1.requestFocus(); 

    } 

    @Override 
    public void start() 
    { 
     if(ivThread == null) 
     { 
      ivThread = new Thread(this, "TestJava"); 
      ivThread.start(); 
     } 
    } 

    @Override 
    public void run() { 
System.out.println("Hello from Thread!"); 
     Component b1 = new JButton("Click Me"); 
     p1.add(b1); 
    } 

} 
+0

Зачем нужен апплет? Если это связано с тем, что учитель указал на это, обратитесь к [Почему учителя CS должны ** останавливаться ** преподавать Java-апплеты] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop-учебно-ява-апплеты /). –

+0

1) «Главный» этого гибрида не ставит ничего на экране BTW. 2) 'setSize (880, 710 + 28);' Размер апплета должен быть установлен в HTML или JNLP, он не должен устанавливать свой собственный размер. –

+0

@AndrewThompson Спасибо за ваши комментарии. Мне нужно, чтобы это отображалось в HTML, но на стадии разработки мне нужно, чтобы это также отображалось в окне отладки Netbeans. – Epsiloncool

ответ

1

Я использовал решение JApplet + JFrame (разрешающий JFrame только в режиме отладки) и она отлично работает в обоих направлениях.

Смежные вопросы