2012-05-02 5 views
2

У меня есть этот код:Невозможно использовать апплет в HTML

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

import javax.swing.*; 


public class MainApp extends JApplet implements ActionListener { 
    private static final long serialVersionUID = -7076767216192554828L; 
    JButton begin = new JButton(new ImageIcon("splash.png")); 
    @Override 
    public void init() { 
     setSize(300, 300); 
     setLayout(new BorderLayout()); 
    begin.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      begin(); 
     } 

    }); 
    add(begin); 
    setVisible(true); 
} 
private void begin() { 
    remove(begin); 
    repaint(); 
} 
@Override 
public void actionPerformed(ActionEvent e) { 
      //to be used later 
} 
} 

Он отлично работает, когда видели в средстве просмотра апплета в Eclipse. Однако, в HTML, он не:

<html> 
<head> 
<title> Test </title> 
<body> 
<APPLET code="MainApp.class" width="300" height="300"> Applet unavailable </APPLET> <br> 
<a href="essay.docx"> Essay </a> (right click, Save Target As, in the menu under the name change it to "All Files," save as "essay.docx") 
</body> 
</html> 

Когда я запускаю это, это дает java.lang.reflect.InvocationTargetException! Я искал исключение и не нашел ничего полезного.

Прежде чем я использовал кнопку .png для кнопки. все было отлично. Я также добавил repaint(), но это не могло иметь никакого значения.

+0

Где 'splash.png' расположен по отношению к HTML или апплета Кувшинов? К этому изображению должен обращаться «URL», а не «String», поскольку «String» интерпретируется как «путь к файлу», и апплет не может загрузить «Файл» с сервера, а только «URL». –

+0

Итак, как мне получить URL-адрес для изображения? Изображение находится в папке, содержащей файл HTML. О, не бойся, замечает Ансельм. – Doorknob

+0

'setSize (300, 300);' Размер апплета должен быть установлен в HTML. Не пытайтесь изменить его размер внутри кода. –

ответ

1

Изображение находится в папке, содержащей файл HTML.

// called from somewhere in the methods (e.g. init()) of the applet class 
URL urlToImage = new URL(getDocumentBase(), "splash.png"); 
begin = new JButton(new ImageIcon(urlToImage)); 
// ... 
1

Апплет не может найти файл splash.png, вы включили его в апплет?

+0

В апплете нет банки. – Doorknob

+0

Попробуйте hardcoding 'JButton begin = new JButton (новое изображениеIcon (" splash.png "));' к чему-то вроде 'JButton begin = new JButton (новый imageIcon (" http: //localhost/splash.png "));' также проверьте свою консоль апплета, возможно, она выдала некоторую ошибку. – anselm

+0

Нет, консоль не ошиблась. Фактически, апплет показал, а затем он сказал «Ошибка. Нажмите здесь для подробностей». Завтра я выложу веб-сайт. На самом деле я загружу .zip на mediafire. Но в программе просмотра апплетов Eclipse он работал отлично! – Doorknob

Смежные вопросы