Инструмент для преобразования приложения Java Swing в апплет - PullRequest
4 голосов
/ 20 марта 2012

У меня большой проект Swing.Есть ли инструмент, который преобразует файл jar приложения Swing в апплет?

Ответы [ 3 ]

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

Если исходный проект создает JFrame, вы можете просто получить contentPane JFrame через

Container contentPane = myFrame.getContentPane();

А затем добавьте JApplet в качестве его панели содержимого, но вы потеряете меню и все такое.

Например,

public class MyApplet extends JApplet {

   @Override
   public void init() {
      try {
         SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
               JFrame myFrame = new MyFrame("Frame");
               Container contentPane = myFrame.getContentPane();
               setContentPane(contentPane);
            }
         });
      } catch (InterruptedException e) {
         e.printStackTrace();
      } catch (InvocationTargetException e) {
         e.printStackTrace();
      }
   }
}

Лучше иметь большинство ваших классов GUI, предназначенных для создания JPanels с самого начала, чтобы вы не столкнулись с этим ограничением.

3 голосов
/ 28 марта 2012

В качестве альтернативы вы можете запустить текущее приложение. по ссылке, используя Java Web Start . Нет необходимости в преобразовании, и это намного проще, чем развертывание апплета.

2 голосов
/ 20 марта 2012

Инструмент имеет 4 строки кода:

public class MyApplet extends Applet {
    public void start() {
         MyApplication.main(new String[0]);
    }
}

Этот апплет будет запускать ваше приложение без аргументов командной строки.Ограничением здесь является то, что аппетит откроет свое собственное окно.Это не будет работать в окне браузера.В обычном случае запустить его в браузере нетривиально, поскольку макет может быть динамическим и может быть создан на самом JFrame.Итак, вам нужны некоторые знания о структуре приложения, чтобы полностью ее перенести.Хорошая новость в том, что в большинстве случаев это не так сложно.Просто вызовите код, который добавляет компоненты в JFrame с помощью самого апплета, который расширяет Panel и, следовательно, является контейнером.

Если ваше приложение получает параметры, вы должны реализовать init() метод апплета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...