Добавить JApplet в JFrame (или AWT Frame) - PullRequest
2 голосов
/ 27 марта 2012

Есть ли возможность добавить апплет (точнее, JBufferedApplet) к JFrame (или кадру AWT).

Я уже попробовал это, но похоже, что Апплет просто не запускается. Это делает фоновый цвет JFrame серым (тот же цвет апплета), но не более того.

Нет возможности изменить JApplet на JPanel (у меня нет доступа к коду).

Все, что нужно сделать на данный момент, это добавить апплет в кадр JFrame / AWT

Это код, который у меня есть:

import javax.swing.JFrame;

public class FormFrame extends JFrame {

    public FormFrame() {
        super("Oracle Forms");
        Main m = new Main();
        getContentPane().add(m); //add(m);
        setSize(800, 600);
        setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

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

}

Все, что он дает, это цвет фона апплета. Похоже, что апплет не работает.

1 Ответ

4 голосов
/ 27 марта 2012

Вы всегда можете попробовать добавить contentPane апплета, например:

public class FormFrame extends JFrame {

   public FormFrame() {
       super("Oracle Forms");
       MyApplet myApplet = new MyApplet();
       myApplet.start();
       myApplet.init();
       getContentPane().add(myApplet.getContentPane()); 
       setSize(800, 600); // not sure about this.  Usually better to call pack();
       setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
       setVisible(true);
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            new FormFrame();
         }
      });
   }
}

Просто не забудьте вызвать метод апплета init(), чтобы позволить ему инициализировать все его компоненты.

Редактировать : изменения, внесенные для обеспечения безопасности потоков согласно превосходной рекомендации trashgod.

...