编程语言
首页 > 编程语言> > java – 如何设置JMenuItem的大小?

java – 如何设置JMenuItem的大小?

作者:互联网

正如你所看到的,拥有这些JMenuItems很难看.菜单项的宽度非常小.

这是代码:

JMenu menuOne=new JMenu("MenuOne");
    JMenu menuTwo=new JMenu("MenuTwo");
    JMenu menuThree=new JMenu("MenuThree");
    JMenu menuFour=new JMenu("MenuFour");
    JMenuBar mbar=new JMenuBar();
    //add the menu to menubar
    mbar.add(menuOne);
    JMenuItem OneItOne=new JMenuItem("1");

    JMenuItem OneItTwo=new JMenuItem("2");
    menuOne.add(OneItOne);
    menuOne.addSeparator();
    menuOne.add(OneItTwo);
    mbar.add(menuTwo);
    mbar.add(menuThree);
    mbar.add(menuFour);
    setJMenuBar(mbar);

只需在String中添加一些空格即可(例如“1”),但有没有更好的方法来设置JMenuItem的首选长度?我尝试过OneItTwo.setSize(),但失败了.

解决方法:

setPreferredSize(new Dimension(…));适用于菜单项. setMinimumSize虽然不起作用;它似乎没有得到菜单布局管理器的尊重,所以如果你想设置一个可以通过拥有更大内容来覆盖的最小值,或者你想设置一个最小或首选宽度而不改变高度,你必须覆盖getPreferredSize( )在子类中.例如.,

menuOne.add(new JMenuItem("1") {
    @Override
    public Dimension getPreferredSize() {
        Dimension d = super.getPreferredSize();
        d.width = Math.max(d.width, 400); // set minimums
        d.height = Math.max(d.height, 300);
        return d;
    }
});

标签:jmenu,java,swing,preferredsize,jmenuitem
来源: https://codeday.me/bug/20190831/1775468.html