Я тестировал свои 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 (), чтобы обновленный текст заменялся инициализированным текстом?