Создание и запуск апплета Java - PullRequest
2 голосов
/ 17 февраля 2011

Я думал, что попробую свои силы в апплетах - я создал апплет с использованием Eclipse. Он работает нормально, используя Run As -> Java Applet.

Я прочитал немного о запуске его вне Eclipse, поэтому я сделал следующее:

  1. Сделал папку.
  2. Создан новый -> Java Project [applet_test].
  3. Внутри проекта я создал New -> Other -> Visual Swing Class -> Applet [Number1] - который создал Number1.class.
  4. Добавил код и запустил его как апплет Java - он работал нормально.
  5. Экспортировал проект как файл JAR (не исполняемый файл JAR).
  6. Написал HTML, используя TextEdit (Mac-версия Windows * Notepad ). Ниже приведен HTML-код ...
  7. Я поместил файл JAR, HTML и файл .class в папку.
  8. В Терминале (окно командной строки Windows для Mac) я запустил Appletviewer applet_testX2.html (это название моего HTML).
  9. Я мог видеть краткую вспышку названия приложения в верхней части экрана (как и любое другое работающее приложение).

Однако приложение (которое должно отображать Jpanel с меткой и кнопкой) НЕ появилось. Я также попытался запустить его из Firefox и Safari. Появился только HTML-код.

Итак, что я делаю не так? И, что еще важнее, как мне сделать это правильно?

Код следует без операторов импорта:

<html>
    <body>
        <applet code="Number1.class" archive="applet_test.jar"
            width=300
            height=300>
        </applet>
    </body>
</html>

Java-код:

public class Number1 extends JApplet {
    public Number1() {

    }

    private static final long serialVersionUID = 1L;

    @Override
    public void init() {
        try {
            EventQueue.invokeAndWait(new Runnable() {
                @Override
                public void run() {
                    initComponents();
                }
            });
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    private void initComponents() {
        setSize(320, 240);

        JPanel panel = new JPanel();
        getContentPane().add(panel, BorderLayout.CENTER);

        JLabel lblAppletTest = new JLabel("Applet test 1");
        panel.add(lblAppletTest);

        JButton btnPushIt = new JButton("Push it");
        panel.add(btnPushIt);
    }
}

Исходный код Firefox:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta http-equiv="Content-Style-Type" content="text/css">
        <title></title>
        <meta name="Author" content="BT">
        <meta name="Generator" content="Cocoa HTML Writer">
        <meta name="CocoaVersion" content="1038.35">
        <style type="text/css">
            p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica}
            p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica; min-height: 19.0px}
        </style>
    </head>
    <body>
        <p class="p1">&lt;html&gt;</p>
        <p class="p1"><span class="Apple-converted-space"> </span>&lt;body&gt;</p>
        <p class="p1"><span class="Apple-converted-space">   </span>&lt;applet code="Number1.class" archive="applet_test.jar"</p>
        <p class="p2"><br></p>
        <p class="p1"><span class="Apple-converted-space">    </span>width=300</p>
        <p class="p1"><span class="Apple-converted-space">   </span>height=300&gt;</p>

        <p class="p1">&lt;/applet&gt;</p>
        <p class="p1">&lt;/body&gt;</p>
        <p class="p1">&lt;/html&gt;</p>
    </body>
</html>

Ответы [ 2 ]

2 голосов
/ 17 февраля 2011

Я думаю, что здесь:

<applet code="Number1.class" archive="applet_test.jar"

вы не принимаете во внимание пакеты. Например, если пакет myPackage.vol3, строка должна выглядеть следующим образом:

<applet code="myPackage.vol3.Number1.class" archive="applet_test.jar"

Но если это не поможет, вам нужно извлечь любые сообщения об ошибках, которые выдает браузер, и отредактировать исходный пост, чтобы показать нам, что они собой представляют.

0 голосов
/ 16 октября 2015
                 Using Appletviewer
                 ------------------
  1. Введите код апплета.

  2. Если вы установили tomcat в D:

  3. code

-

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class MyApplet extends Applet
{
    public void init()
    {
        System.out.println("init intilize");
        GridLayout g=new GridLayout(4,6,0,0);
        setLayout(g);
        MyListener m=new MyListener();

        for(int i=1;i<=12;i++)
        {
            Button b=new Button("ok"+i);
            add(b);
            b.addActionListener(m);
        } 
    }//end of init

    public void start()
    {
        System.out.println("applet started");
    }//end of start

    public void stop()
    {
        System.out.println("applet stop");
    }//end of 

    public void paint(Graphics g)
    {
      g.drawString("Naveed",200,25);
      g.drawOval(20,30,30,20);
      System.out.println("applet paint");
    }//end of start

    public void destroy()
    {
        System.out.println("applet destroy");
    }//end of start
}

class MyListener implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        System.out.println("button clicked");
    }//end of actionPerformed
}

Теперь сохраните этот код в D:, а не в подпапке.

Сначала скомпилируйте его.

откройте cmd

cd D:

type

`javac MyApplet.java -d classpath D:\Tomcat\common\lib\servlet.jar`

Это сделает MyApplet.class файл

Теперь сделайтеHTML-файл.

<html>
<body>
    <applet code="Number1.class" width=30  height=300 > </applet>
</body>
</html>

Сохранить с именем, которое вы хотите, скажем, app.html

запустить HTML-файл сейчас.

Вокно cmd

appletviewer app.html

Вывод будет перед вами.

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