Java JFrame上的工具栏不会更新,Singleton
我有一个叫MainWindow的JFrameJava JFrame上的工具栏不会更新,Singleton,java,swing,Java,Swing,我有一个叫MainWindow的JFrame public class MainWindow extends JFrame { private static MainWindow instance = null; public static MainWindow getInstance() { if (instance == null) { instance = new MainWindow(); instanc
public class MainWindow extends JFrame {
private static MainWindow instance = null;
public static MainWindow getInstance() {
if (instance == null) {
instance = new MainWindow();
instance.init();
}
return instance;
}
}
在init()方法中,我得到了menupupulate()和toolbarPopulate()方法,其中我添加了菜单项和工具栏项。我的主窗口是singleton,还有一个名为“NewKeyPairPL”的菜单项,它在开始时设置为可见(false)在这里,我试图从我的控制器启用菜单项
我的问题是当我想将NewKeyPairPL菜单项设置为setVisible(true)时。我是从控制器上做的,它没有更新。下面是我的代码:
MainWindow.getInstance().getNewKeyPairPL().setVisible(true);
MainWindow.getInstance().getNewKeyPairPL().repaint();
MainWindow.getInstance().getNewKeyPairPL().revalidate();
MainWindow.getInstance().getToolBar().repaint();
MainWindow.getInstance().getToolBar().revalidate();
MainWindow.getInstance().repaint();
MainWindow.getInstance().revalidate();
另外,如果我在MainWindow类中尝试相同的操作,如下所示:
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
newKeyPairPL.setEnabled(true);
}
});
(btn1是我工具栏中的按钮之一)
它正在工作,但这不是我需要的。什么是newKeyPairPL?我写道,我想将它的菜单项设置为可见,因为它在开始时不可见。也许你可以尝试将其简化为一个只有JFrame和JMenu的示例。从你的“回答”来看,听起来你在制作不止一个“主窗口”。也许您应该同步该方法。请添加一个完整的、可编译的代码示例。