在同一JMenu中对JMenuItem组进行排序,而不对其他JMenuItem进行排序

时间:2020-08-10 08:05:29

标签: java swing sorting jmenu

我正在使用的应用程序使用户可以与某些特定于行业的硬件建立连接。可以保存这些连接(IP /主机耦合)并指定名称,还可以选择一个组属性,该属性将成对保存的属于同一组的连接配对。

我现在有一个JMenu,它为用户提供各种与连接有关的选项。 JMenu的结构如下:

  1. 建立新连接
  2. 一个JSeparator
  3. 3个始终保持不变的标准修订程序连接条目
  4. JSeparator
  5. 已定义的连接组的多个条目
  6. JSeparator
  7. 多个不属于某个组的条目
  8. JSeparator
  9. 关闭连接

我需要的排序算法必须按字母顺序对5中的分组条目和按字母7中的未分组条目进行排序,而无需对任何其他MenuItem进行排序。基本上,如何在JMenu内对MenuItems的子组进行排序而不对所有子组进行排序?

1 个答案:

答案 0 :(得分:1)

自从我使用Swing已经有一段时间了,但是我假设您可以将每个菜单项文本的字符串存储在Objects数组中,并在for循环中呈现菜单项。然后,您可以将1、3和9作为字符串存储在数组中,并将5和7作为字符串存储在第一个数组中。然后,您可以在渲染第一个数组的每个项目之间插入一个JSeparator,使用instanceof关键字确保每个项目都是字符串。如果该项不是instanceof字符串,而是instanceof ArrayList ,则可以为该内部ArrayList中的每个字符串呈现一个菜单项。您可以使用Collections.sort(mainArray[indexesOfSubarrays])按字母顺序对每个内部ArrayList中的项目进行排序。