在swing中,如果过多的JMenu对象加入到JMenuBar中后,JMenu会紧缩极端情况下会不被看到。这种情况下需要出现溢出符号或将多余的菜单排列到下一排的效果怎么样实现?
另外对于单个JMenu中包含过多JMenuItem一样会出现无法用鼠标访问对应的菜单项的情况,这里怎么样在超出屏幕范围外的情况显示滚动按钮的效果?
希望高手指点下!

解决方案 »

  1.   

    看了些资料,最好的办法可能是需要修改UI实现。
    但是对于 JToolBar 可以通过 addComponentListener 的 componentResized 事件将多余的不能显示的 JMenu remove 掉,之后再插入一个溢出符号的 JMenu 把之前删除的 JMenu 全部添加到新的这个带溢出符号的 JMenu 中,这样就可以基本实现了上述前一个问题了,不过实现的方法内聚性肯定是不怎么好的。对于自定义布局器的应用不知道是不是可行,按照上面这个思想。望高手指点!
    对于第二个 JMenu 内 JMenuItem 过多的问题,发现确实是个大问题,可能连扩展 UI 都有可能作不到,哎