JApplet Restart添加组件的重复项

时间:2019-03-21 04:00:52

标签: java swing applet japplet appletviewer

我一直在测试我的JApplets,并且它们运行正常。我发现了始终加载的Applet菜单,我想测试一下其菜单项。当我尝试“重新启动”菜单项时,我意识到诸如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-重新启动时,JButton会自我复制,并且JLabel不会重置。我以为init()仅被调用了一次,但是在Restart中,它被调用了多次。因此,我的JApplets不在Restart上执行此操作,应该在构造函数中声明并添加组件(未由其他方法(例如actionPerformed()引用)),还是应该在类范围内声明所有组件,因此不会将它们视为新组件对象?应该在init()中实例化,以便用初始化的文本替换更新的文本吗?

0 个答案:

没有答案