7

我正在尝试将 JMenuBar 的边框更改为其他边框。像那样(例如):

图片 1 http://img11.hostingpics.net/pics/696780Sanstitre.png图片 2 http://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));

它不起作用:( ...

[/编辑]

4

2 回答 2

11

最后我找到了你要找的东西:) 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

于 2012-08-28T17:40:12.270 回答
2

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

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

于 2012-08-28T16:55:51.120 回答