当我向工具栏添加按钮时,我遇到了这个奇怪的问题。我在动画显示框架之前添加了一个按钮添加了动作侦听器,它可以正常工作:
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
toolbar.add(new JButton("new button"));
}
});
我还添加了一段代码,它应该在加载一些插件后添加一个新按钮,并且由于某种原因,这段代码不起作用。
@Override
public void handle() {
System.out.println("Button added");
MainFrame frame = Application.getInstance().getMainFrame();
frame.getToolbar().add(new JButton("Plugin button"));
frame.getToolbar().revalidate();
frame.getToolbar().repaint();
System.out.println(frame.getToolbar().getComponents().length); // It is definitely being added, just not shown
}
按钮肯定是添加的,只是没有显示。 我真的很感激任何帮助,因为这件事阻止了我继续前进。
答案 0 :(得分:0)
我发现了问题所在。问题是我实例化了MainFrame两次,首先在main中调用Application构造函数然后在调用Application.getInstance()时,所以添加到MainFrame的所有组件都被删除了。