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のデフォルトです

于 2012-08-28T17:40:12.270 に答える
2

まず、javax.swing.border.Borderクラスを確認します。javax.swing.JComponentを拡張するすべてのSwingクラスには、setBorder()メソッドがあります。

JavaAPIのドキュメントに精通することを強くお勧めします。これらは、Javaでプログラミングする場合に非常に貴重なツールです。

于 2012-08-28T16:55:51.120 に答える