如何检索添加到JMenu的组件数量?

时间:2012-11-22 04:28:08

标签: java swing junit assert

我做了一个小测试,在第二次测试中我得到一个断言错误(0而不是1):

package tests;

import static org.junit.Assert.*;
import org.junit.Test;
import javax.swing.*;

public class MenuTest {

    @Test
    public void testElementsAddition() {
        JMenuItem mItem1 = new JMenuItem();
        JMenuItem mItem2 = new JMenuItem();
        JMenu menu = new JMenu();

        mItem1.add(mItem2);
        assertEquals(1, mItem1.getComponentCount());

        menu.add(mItem1);
        assertEquals(1, menu.getComponentCount());
    }
}

任何想法为什么会发生这种情况?

1 个答案:

答案 0 :(得分:3)

这是因为菜单项实际上并未添加到JMenu本身,而是在内部添加到弹出菜单中,实际上没有任何内容添加到菜单中。

我想你会想要使用JMenu#getItemCount,其中"返回菜单上的项目数,包括分隔符" ,或者最好是{{3} }