gpt4 book ai didi

java - 在 Swing 运行时动态添加按钮

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:46 31 4
gpt4 key购买 nike

当我向工具栏添加按钮时,我遇到了这个奇怪的问题。我将 Action 监听器添加到显示框架之前添加的一个按钮,并且它工作正常:

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

}

该按钮肯定已添加,只是未显示。我真的很感激任何帮助,因为这件事阻碍了我进一步的进步。

最佳答案

我发现问题出在哪里了。问题是我实例化了MainFrame两次,首先是在main中调用Application构造函数,然后是在调用Application.getInstance()时,所以添加到MainFrame的所有组件都被删除了。

关于java - 在 Swing 运行时动态添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34966842/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com