#java #swing #applet #japplet #appletviewer
#java #swing #апплет #japplet #appletviewer
Вопрос:
Я тестировал свои JApplets, и они работали нормально. Я обнаружил меню апплета, которое всегда загружается, и я хотел протестировать его пункты меню. Когда я попробовал пункт меню Перезапуск, я понял, что такие компоненты, как JButton, JLabel, JTextBox, дублируют сами себя, и текст, который был установлен ActionEvent, не сбрасывается. Вот пример JApplet:
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.event.*;
public class ExampleJApplet extends JApplet implements ActionListener
{
private JLabel label= new JLabel();
public void init()
{
setLayout(new FlowLayout());
JButton button = new JButton("Press");
add(button);
add(label);
button.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
label.setText("The button was pressed");
}
}
Это работает, но когда я захожу в Applet — Restart, JButton дублирует себя, а JLabel не сбрасывается. Я думал, что init () вызывался только один раз, но при перезапуске он вызывается более одного раза. Чтобы мои JApplets не делали этого при перезапуске, должен ли я объявлять и добавлять компоненты (на которые не ссылаются другие методы, такие как actionPerformed()) в конструкторе или я должен объявлять все компоненты в области видимости класса, чтобы они не рассматривались как новые объекты? Следует ли создавать экземпляры в init (), чтобы обновленный текст заменялся инициализированным текстом?
Комментарии:
1. Из любопытства: почему вы изучаете japplet? Вы проводите занятия по истории компьютерных наук?
2. «Я обнаружил меню апплета, которое всегда загружается ..» Итак .. вы говорите о программе просмотра апплетов, верно? Зачем так сильно беспокоиться о том, как работает (или неисправен) инструмент разработчика? Кажется, Oracle не так уж сильно заботится об апплетах (учитывая, что они устарели), и я бы предположил, что еще меньше об артефактах, связанных с инструментами разработчика для апплетов. Чтобы расширить то, что упомянул @GhostCat.. Смотрите, Поддержка плагинов Java устарела и переходит на веб-сайт без плагинов .
3. Я использовал Java много лет назад. Мы узнали о JApplets. Возможно, в учебниках Java больше даже нет главы о JApplets, а если и есть, преподаватели просто пропускают ее. Я не думаю, что они удалены из Java. На веб-сайте Oracle все еще присутствует класс JApplet. Браузеры перестали поддерживать JApplet, но JApplet все еще находится в JDK, и они по-прежнему работоспособны. Компании, вероятно, прекратили работать с JApplets, и, возможно, именно поэтому бесполезно этому учить. Так что на самом деле не имеет значения, как я защищаю их от сбоев при перезапуске, поскольку сейчас это хобби, а не то, что нужно компаниям.