如何使用Java Swing创建此特殊菜单栏?

Joh*_* Vu 5 java icons swing jmenuitem jmenu

我正在尝试使用Swing实现这种类型的菜单.有没有现成的解决方案(免费和/或商业)?

http://i.stack.imgur.com/iwtQf.png

COD*_*BOY 15

假设你想在菜单上看到那个图像,为什么不这样呢?

BufferedImage image = ImageIO.read(url);

yourJMenu.setHorizontalTextPosition(SwingConstants.CENTER);
yourJMenu.setVerticalTextPosition(SwingConstants.BOTTOM);

yourJMenu.setIcon(new ImageIcon(image));
Run Code Online (Sandbox Code Playgroud)

编辑: 似乎你要求从头开始.

在阅读本答案之前,请参阅:如何使用菜单.


编辑2:这是一个SSCCE,

import java.awt.image.BufferedImage;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingConstants;

public class MenuTest {

    public static void main(String[] argv) throws Exception {
        // Create the menu bar
        JMenuBar menuBar = new JMenuBar();

        String imageURL = "http://blogs.discovermagazine.com/" +
            "drone360/wp-content/themes/discoverblog/images/" +
            "gear_icon.png";

        // Create a menu
        JMenu menu = new JMenu("Menu");
        BufferedImage image = ImageIO.read(new URL(imageURL));
        menu.setHorizontalTextPosition(SwingConstants.CENTER);
        menu.setVerticalTextPosition(SwingConstants.BOTTOM);
        menu.setIcon(new ImageIcon(image));
        menuBar.add(menu);

        // Create a menu item
        JMenuItem item = new JMenuItem("Test Item");

        menu.add(item);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setJMenuBar(menuBar);
        frame.setSize(500, 550);
        frame.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

资源礼貌:http://pscode.org/media/

  • 还要考虑`JToolBar`. (3认同)