2013-11-23 3 views
2

Я искал вокруг, поэтому, пожалуйста, извините меня, если я пропустил это, я знаю, что есть много потоков, которые касаются такого рода вещей, но я пока не нашел четкого ответа.Практическое руководство: JAR -> Веб-приложение?

Мой вопрос (я думаю) довольно простой. У меня есть исполняемый JAR-файл (созданный в Eclipse), и я хочу разместить его на своем веб-сайте, предположительно, как апплет. Я мало разбираюсь в апплетах, просто они являются исполняемыми программами Java, которые запускаются на веб-страницах.

Является ли этот переход тривиальным, или он потребует от меня полностью переписать мою программу полностью? Имея в виду, он в значительной степени полагается на компоненты Swing, такие как JTabbedPanes, JButtons, JLabels и т. Д.

Спасибо!

EDIT: Благодаря ответу, я переписал свои компоненты, чтобы быть апплетами внутри класса, который расширяет апплет и создает мой графический интерфейс, как и в методе run(). Моя проблема в том, что раньше, у меня был метод запуска самой программы (это симуляция рода). Внутри он просто обновлял определенные вещи с течением времени, но делал это в бесконечном цикле. Без этого кода запуска мой апплет может создавать графический интерфейс, но графический интерфейс не имеет смысла без кода запуска, что приводит к тому, что апплет не может загрузить какие-либо компоненты. Есть предположения?

EDIT_2: Я только что решил использовать Java Web Start. Благодарю.

ответ

4

Вам не нужно преобразовывать его в апплет. Вы можете просто использовать Java Web Start.

+0

Да, ты прав. На самом деле я это сделал. Благодаря! – humdiddlediddle

3

Вы должны объявить апплет удлинителей класс, который будет точкой входа для вашего апплета:

public class HelloWorld extends JApplet { 
    //Called when this applet is loaded into the browser. 
    public void init() { 
     //Execute a job on the event-dispatching thread; creating this applet's GUI. 
     try { 
      SwingUtilities.invokeAndWait(new Runnable() { 
       public void run() { 
        JLabel lbl = new JLabel("Hello World"); 
        add(lbl); 
       } 
      }); 
     } catch (Exception e) { 
      System.err.println("createGUI didn't complete successfully"); 
     } 
    } 
} 

Из run метода (в данном примере) или init(), вы можете выполнить все, что ваш программа делает. Далее необходимо указать ваш апплет в браузере HTML:

<applet code="yourMainClass.class" height="250" width="350"> 
    <b>Sorry, you need Java to play this game.</b> 
</applet> 

Для заключения: вам нужно переписать запись класс точки (тот, содержащий основной метод), откуда вам нужно вызвать все тот же свинг -строительные функции. И переупаковать все.

+0

Я никогда не знал, что банкам нужен дополнительный код для апплета. Спасибо за ответ и спасибо за просьбу @humdiddlediddle. –

+0

@ArtemMoskalev Я переписал свои компоненты, чтобы быть апплетами внутри класса, который расширяет апплет и создает мой графический интерфейс, как и в методе run(). Моя проблема в том, что раньше, у меня был метод запуска самой программы (это симуляция рода). Внутри он просто обновлял определенные вещи с течением времени, но делал это в бесконечном цикле. Без этого кода запуска мой апплет может создавать графический интерфейс, но графический интерфейс не имеет смысла без кода запуска, что приводит к тому, что апплет не может загрузить какие-либо компоненты. Есть предположения? – humdiddlediddle