点击菜单项后,显示另一个菜单项

时间:2018-06-23 22:31:16

标签: java jmenu jmenuitem jmenubar

我一直试图在选择其中一个公司时将两个布尔值之一(Distribution和Zwaluw)设置为true,显然这是这样的,但是一旦选择了公司,就应该设置另一个JMenu可见。

这是将布尔值设置为true的代码

  menuItem = new JMenuItem("Bedrijf..");
              menu.add(menuItem);
              menuItem.addActionListener(new ActionListener() {
                  public void actionPerformed(ActionEvent ev) {
                        Frame frame2 = new JFrame("Kies het juiste programma");
                        String keuze = (String) JOptionPane.showInputDialog(frame2, "Programma", "Kies het juiste bedrijf", 
                                JOptionPane.QUESTION_MESSAGE, null, bedrijven, bedrijven[0]);
                        if(keuze.equals(bedrijven[0])) {
                            Distribution = true;
                        }
                        if(keuze.equals(bedrijven[1])) {
                            Zwaluw = true;
                        }
                  }
              });

这是选择公司后应执行的代码

 menu = new JMenu("Aanmaningen");
              menu.setMnemonic(KeyEvent.VK_N);
              menu.getAccessibleContext().setAccessibleDescription(
                      "Debiteuren aanmanen");
              menuBar.add(menu);
              menu.addSeparator();
              ButtonGroup group2 = new ButtonGroup();
              if(Distribution) {
                  rbMenuItem = new JRadioButtonMenuItem("Aanmaningen automatisch verzenden");

                  rbMenuItem.setSelected(false);
                  rbMenuItem.setMnemonic(KeyEvent.VK_R);
                  group2.add(rbMenuItem);
                  menu.add(rbMenuItem);
                  rbMenuItem.addActionListener(new ActionListener() {

                    @SuppressWarnings("static-access")
                    @Override
                    public void actionPerformed(ActionEvent arg0) {
                        chosenComp = true;
                        f.getContentPane().add(new Main());
                          f.revalidate();
                          f.repaint();
                             Distrscherm obj = new Distrscherm();
                             obj.plannerJTable();
                    }

                  });
              }

很显然,您并不真正知道我在这里使用的方法,等等,但是我认为这更像是一个一般性的问题。 所以我想到的是:

  1. 一个while循环总是正确的(但我认为那是很糟糕的笑声)
  2. 在第一个代码中调用方法,然后运行第二个代码(因此,在调用按钮时,请在code2中执行该方法)
  3. 使用f.revalidate()和.repaint->不起作用

但是,我尝试了2,并且由于菜单不是最终菜单,所以无法将其传递给其他方法。尝试了多个选项,但未显示菜单项。

关于如何执行此操作的任何想法? :)

0 个答案:

没有答案