更改JMenuBar边框



我正在尝试用其他边框更改JMenuBar的边框。比如:

来自图像1http://img11.hostingpics.net/pics/696780Sanstitre.png至图像2http://img11.hostingpics.net/pics/900299Sanstitre2.png

但我找不到办法。我可以改变我想要的任何事情,但那除外。

[编辑]我已经试过了:

UIManager.put("Menu.border", BorderFactory.createLineBorder(Color.black, 1));
UIManager.put("MenuBar.border", BorderFactory.createLineBorder(Color.black, 1));
UIManager.put("MenuItem.border", BorderFactory.createLineBorder(Color.black, 1));

但它不起作用:(…

[/edit]

最后我找到了您想要的东西:)UIManager的正确属性是PopupMenu.border。要将整个弹出菜单的边框更改为4像素的厚度和红色(只是一个有趣的例子),您需要以下行:

UIManager.put("PopupMenu.border", BorderFactory.createLineBorder(Color.red, 4));

这里有一个小例子:

import java.awt.Color;
import javax.swing.*;
import javax.swing.border.*;
public class CustomPopupMenuBorder
{
    public static void main(String[] args)
    {
        UIManager.put("PopupMenu.border", BorderFactory.createLineBorder(Color.black, 1));      
        JDialog myJDialog = new JDialog();
        myJDialog.setSize(450,300);
        JMenuBar bar = new JMenuBar();
        JMenu menu = new JMenu("It's a me");
        JMenuItem item = new JMenuItem("JMenuItem 1");
        JMenuItem item2 = new JMenuItem("JMenuItem 2");
        menu.add(item);
        JSeparator sep = new JSeparator();    
        menu.add(sep);
        menu.add(item2);
        bar.add(menu);
        myJDialog.setJMenuBar(bar);
        myJDialog.setVisible(true);
    }
}

在实现这一点的过程中,我得到的最好的帮助是java应用程序UIManager Defaults

我将从javax.swing.border.border类开始。每个扩展javax.Swing.JComponent的Swing类都有一个setBorder()方法。

我强烈建议您熟悉Java API文档。当您使用Java编程时,这些是非常宝贵的工具。

相关内容

  • 没有找到相关文章