Я нахожусь в моем первом классе программирования, и теперь я заканчиваю семестр. У меня есть онлайн-портфолио, где я делюсь своими достижениями в колледже. На этом этапе семестра я хотел бы загрузить несколько простых апплетов, которые я создал, в мое онлайн-портфолио. Мое портфолио размещено на Weebly.com. Я попытался загрузить файлы на хост-сайт и использовать простые теги для запуска апплета в HTML. Я совершенно уверен, что я получаю доступ к файлам, используя правильные каталоги. Но прежде чем мы сделаем какие-либо выводы, я решил запустить апплеты локально, чтобы убедиться, что я все делаю правильно. Я на MacBook Pro под управлением ОС 10.6.6. В настройках Java мои версии Java SE - это 64-разрядная версия Java SE 6 и 32-разрядная версия Java SE 6. Моя версия плагина 1.6.0 (находится в / System / Library / Java / JavaVirtualMachines). Это единственные версии, которые у меня есть на моей машине. Мое исследование говорит мне, что у меня могут быть разногласия по версии. Некоторые форумы предлагают вернуться к плагину версии 1.5 (хотя я понятия не имею, как). Теперь я уверен, что Apple обновила Safari до 64-битной версии. У меня Eclipse установлен на 1.6 тоже. Мне кажется, что все на одной странице.
И да, я прочитал все связанные с этим вопросы снова и снова. Большинство из них сейчас немного устарели.
Вот мой код апплета:
/**
* Class NightScene - Draws a night scene (just for fun).
*
* @author Alex Stout
* @version February 8, 2011
*/
package lab05_1;
import java.awt.*;
import javax.swing.*;
public class NightScene extends JApplet
{
/**
* Paint method for applet.
*
* @param g the Graphics object for this applet
*/
public void paint(Graphics g)
{
g.setColor(Color.BLUE.darker().darker().darker());
g.fillRect(0,0, this.getWidth(), this.getHeight());
this.drawMoon(g);
this.drawStars(g);
this.drawHorizon(g);
}
public void drawStars(Graphics h)
{
for (int i = 0 ; i <= this.getWidth()*5; i++)
{
int x = (int)(Math.random()*this.getWidth());
int y = (int)(Math.random()*this.getHeight());
h.setColor(Color.WHITE);
h.fillOval (x, y, (int) (Math.random()*3)+1, (int) (Math.random()*3)+1);
}
}
public void drawMoon(Graphics j)
{
int x = (int)(Math.random()*(this.getWidth()-200)+50);
int y = (int)(Math.random()*(this.getHeight()-200)+50);
j.setColor(Color.YELLOW.brighter().brighter());
j.fillOval (x, y, this.getWidth()/10, this.getWidth()/10);
j.setColor (Color.BLUE.darker().darker().darker());
j.fillOval (x-(this.getWidth()/100), y-(this.getWidth()/100), this.getWidth()/10, this.getWidth()/10);
}
public void drawHorizon(Graphics k)
{
int xi = 0;
int xj = this.getWidth();
int yj = this.getHeight();
int rh = this.getHeight()-this.getHeight()/8;
for (int i=0; i < xj; i++)
{
k.setColor(Color.BLACK);
k.drawLine(xi, yj, xi, rh);
k.setColor(Color.BLUE);
if(Math.random()<0.50)
{
k.drawLine(xi++, rh++, xi, rh++);
}
else
{
k.drawLine(xi++, rh--, xi, rh--);
}
}
}
}
Вот мой HTML-код:
<html>
<Applet code = NightScene.class codebase = "." width = "400" height = "400">
</Applet>
</html>
Вот вывод консоли Java:
Java Plug-in 1.6.0_24
Using JRE version 1.6.0_24-b07-334-10M3326 Java HotSpot(TM) 64-Bit Server VM
User home directory = /Users/myUserName
Некоторые люди предлагают использовать codebase = "." поэтому я попробовал это безрезультатно. Это не работает с или без него. Я попытался ввести полный путь к каталогу, но безуспешно. Я пробовал цитаты и никаких кавычек вокруг названия класса. Я попробовал с и без .class на конце. Я попытался создать подкаталог lab05_1, потому что это имя пакета в коде. Неудачно. И файл класса, и файл html находятся в одной папке на рабочем столе. Файл класса является копией исходного файла, созданного в Eclipse, но он имеет то же имя, поэтому я не думаю, что это может вызвать какие-либо проблемы в разных каталогах.
Я не знаю, что еще делать. Пожалуйста помоги! Это раздражало меня в течение недели. Я часами часами занимался чем-то таким простым.