Arhn - архитектура программирования

Как отобразить информацию в браузере через Java Applet?

Я хочу отображать информацию о музыкальной композиции в браузере через Java-апплет. Я использую библиотеку beaglebuddy_mp3.jar для тегов id3. Папка с файлами выглядит так:

applet
 - index.html
 - FirstApplet.class
 - beaglebuddy_mp3.jar

В index.html подключаю апплет:

<applet code="FirstApplet.class" archive="beaglebuddy_mp3.jar" width="500" height="500"></applet>

FirstApplet.class содержит следующий код:

import java.applet.Applet;
import java.awt.Graphics;
import java.io.File;
import java.io.IOException;

import com.beaglebuddy.mp3.MP3;

public class FirstApplet extends Applet{

public void paint(Graphics g){
    try {
        MP3 mp3 = new MP3("D:\\Music\\abc.mp3");
        g.drawString(mp3.getBand() +" "+mp3.getTitle(), 20, 20);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    }
   } 
}

После запуска файла index.html появляется диалоговое окно с предупреждением о том, что я запускаю приложение на свой страх и риск. Потом нажимаю "Выполнить", моментально появляется и исчезает серый квадрат. При этом ничего не отображается.

01.10.2014

  • Где находится ваш start() метод? Я думаю, вам следует сначала изучить руководство по Java Applets. 01.10.2014
  • MP3 mp3 = new MP3("D:\\Music\\abc.mp3"); 1) Должен быть объявлен в методе init(), который вызывается только один раз при запуске апплета. 2) Скорее всего, следует использовать URL-адрес вместо String, представляющего путь к файлу. Если у конечного пользователя нет MP3 с таким же именем и местоположением, он не может работать. 3) Лучше добавить метки для отображения бэнда и заголовка, а не перекрывать краску. 02.10.2014
  • 1) Зачем кодировать апплет? Если это произошло по указанию учителя, отправьте его на Почему учителя компьютерных наук должны прекратить преподавать Java-апплеты. 2) Зачем использовать AWT? См. этот ответ по многим веским причинам отказаться от AWT с использованием компонентов в пользу свинга. 3) Убедитесь, что консоль Java настроена для отображения. Если на уровне по умолчанию нет выхода, поднимите его. 02.10.2014

Ответы:


1

Попробуйте следующее:

import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;
import java.io.File;
import java.io.IOException;
import com.beaglebuddy.mp3.MP3;


public class FirstApplet extends JApplet {

    public void init() {

        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {

                    MP3 mp3 = new MP3("D:\\Music\\abc.mp3");
                    JLabel label = new JLabel(mp3.getBand() +" "+mp3.getTitle());
                    add(label);
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't complete successfully");
        }
    }
}

И, во-вторых, вы должны подписать свой код апплета официальным сертификатом, чтобы иметь возможность запускать его в своем веб-браузере.

02.10.2014
  • @Andrew Thompson написал о выводе, может быть, это причина того, что данные не появляются, чтобы сказать мне, как это настроить? PS Я новичок в Java. i59.tinypic.com/qn0dqs.jpg 06.10.2014
  • Подписали ли вы свой апплет официальным сертификатом? В противном случае он не будет работать в браузере. (В качестве альтернативы вы можете понизить планку безопасности в настройках системы Java) 06.10.2014
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..