JApplet Restart добавляет дубликаты компонентов - PullRequest
0 голосов
/ 21 марта 2019

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

...