我正在创建一个小程序,它由一个扩展 JApplet 的类、一个菜单栏和一个扩展 JPanel 的类组成。(所以小程序中显示了一个菜单栏和一个 JPanel)。
在这个类中,我向 JPanel 添加和删除一些文本字段。这一切都很好。这就是它变得棘手的地方:它只在第一次工作。当我向 JPanel 添加一些新的文本字段时,它们被添加并在 JPanel 中可见,但 JFrame 中的菜单栏停止工作。
由于代码过于广泛,我将只发布其中的一部分。
这是我将 JPanel 添加到 JApplet 的代码:
public class Simulator extends JApplet implements ItemListener, ActionListener {
Container pane = getContentPane();
canvas = new DrawCanvas();
pane.add(canvas, BorderLayout.LINE_END);
}
这是JPanel的代码:
class DrawCanvas extends JPanel {
public void paintComponent(Graphics g) {
if(textfield != null)
remove(textfield);
textfield = new JTextField();
this.add(textfield);
}
}
这第一次有效(没有删除任何内容),但第二次菜单栏停止工作。当我省略 this.add(textfield); 行,菜单栏继续工作。