java - 在swing中的JMenu中添加图标和文本

标签 java swing menu jframe awt

我正在做 Swing 。我必须创建一个包含 10 个菜单的主屏幕。 我已经通过 JFrame 创建了表单,通过 JMenu 创建了菜单。现在该菜单应该同时包含文本和图像,并且应该在单击菜单时调用执行操作的方法,以便可以在单击菜单按钮时执行操作。

现在我正在用 JMenuItem 和图像图标上的图标制作 Jmenu,但我想要带有图标和文本的菜单

我现在的代码是

public class MenuScreen  extends JFrame implements ActionListener{

             Container cp;
             JMenuBar menuBar;

             JLabel logo;
                public MenuScreen() {
                    super("");
                    cp=this.getContentPane();
                    cp.setBackground(Color.gray);

                    menuBar= new JMenuBar();
        logo=new JLabel(im);
                cp.add(logo);
                    logo.setBounds(100,80,500,350);

            helpmenu= new JMenu(" Help  ");
        homemenu=new JMenu(" Home  ");
        fieldsmenu= new JMenu(" Fields  ");
        backmenu= new JMenu(" Back  ");
        forwardmenu= new JMenu(" Forward  ");
        panelmenu= new JMenu(" Panel  ");
        searchmenu= new JMenu(" Search  ");
        quickmenu= new JMenu(" Quick  ");
        infomenu= new JMenu(" Info  ");
        exitmenu= new JMenu(" Exit  ");
        mastermenu= new JMenu(" Master  ");
        tarrifmenu= new JMenu(" Tarrif  "); 
        contactmenu= new JMenu(" Contact  ");
        webmenu= new JMenu(" Web  ");
        wordmenu= new JMenu(" Word  ");
        legaldictionarymenu= new JMenu(" LegalDictionary  ");
        budgetmenu=new JMenu(" Budget 2012 2013  ");
        memberdetailmenu= new JMenu(" Member Details  ");


        Font f1= new Font("Arial",Font.BOLD,16);

        budgetmenu.setFont(f1);
        legaldictionarymenu.setFont(f1);
        helpmenu.setFont(f1);

        JMenuItem backmenuitem= new JMenuItem(backicon);
        backmenu.add(backmenuitem);


        JMenuItem exitmenuitem= new JMenuItem(exiticon);
        exitmenu.add(exitmenuitem);

        menuBar.add(helpmenu);
        menuBar.add(homemenu);
        menuBar.add(fieldsmenu);
        menuBar.add(backmenu);
        menuBar.add(forwardmenu);
        menuBar.add(panelmenu);
        menuBar.add(searchmenu);
        menuBar.add(quickmenu);
        menuBar.add(infomenu);
        menuBar.add(exitmenu);
        menuBar.add(mastermenu);
        menuBar.add(tarrifmenu);
        menuBar.add(contactmenu);
        menuBar.add(webmenu);
        menuBar.add(wordmenu);
        menuBar.add(legaldictionarymenu);
        menuBar.add(budgetmenu);
        menuBar.add(memberdetailmenu);

        setJMenuBar(menuBar);

    /*
     Adding Listeners to the menus where required 

     */
            searchmenu.addActionListener(this);

    }

    public void actionPerformed(ActionEvent ae)
    {
     JOptionPane.showMessageDialog(null,"clicked");
          if(ae.getActionCommand().equals("Search"))
          {

           SearchForm frm=new SearchForm();
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
          frm.setBounds(0,0,screenSize.width, screenSize.height);
          frm.setVisible(true);


          }           

    }

   public static void main(String args[])
{

       MenuScreen frm= new MenuScreen();

       Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
       frm.setBounds(0,0,screenSize.width, screenSize.height);
       frm.setVisible(true);
}
}

请帮助我。

最佳答案

使用构造函数JMenuItem(String text, Icon icon)
如果你想要带有图标和文本的 JMenu,请执行

helpmenu= new JMenu(" Help  ");
helpmenu.setIcon(..);

关于java - 在swing中的JMenu中添加图标和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12527092/

相关文章:

java - 如何从 JPanel 中删除组件?然后重新显示框架?

javascript - 移动菜单 toggleClass 和 removeClass

java - 从 Main 方法传递参数

java - 将字符串变量分配给另一个字符串

java - 如何将 JPanel 从另一个类添加到框架

java - 我如何从 java swing 程序打开一个 php 文件?

jquery - 是否有任何 jQuery 插件可以提供与 www.squarespace.com 菜单类似的结果?

swift - AKSwiftSlideMenu 事件指示器

java - 为基于 Java 的 Web 应用程序实现文章修订历史

java - 使用 GeckoDriver 在 Linux 上运行 Selenium 测试 : driver is not executable