Java 对同一JMenu中的JMenuItems组进行排序,而不对其他JMenuItems进行排序
我正在开发的一个应用程序让用户建立与某些特定于行业的硬件的连接。这些连接(IP/主机耦合)可以保存并指定名称,还可以选择一个组属性,该属性将配对属于同一组的已保存连接 我现在有了一个JMenu,它为用户提供了处理连接的各种选项。JMenu的结构如下所示:Java 对同一JMenu中的JMenuItems组进行排序,而不对其他JMenuItems进行排序,java,swing,sorting,jmenu,Java,Swing,Sorting,Jmenu,我正在开发的一个应用程序让用户建立与某些特定于行业的硬件的连接。这些连接(IP/主机耦合)可以保存并指定名称,还可以选择一个组属性,该属性将配对属于同一组的已保存连接 我现在有了一个JMenu,它为用户提供了处理连接的各种选项。JMenu的结构如下所示: 建立新的连接 分离机 3个始终保持不变的标准修订程序连接条目 分离机 定义的连接组有多个条目 分离机 不属于一个组的多个条目 分离机 密切联系 我需要的排序算法必须将分组条目从5中排序。按字母顺序和7中未分组的条目。按字母顺序排列,不排序任何其
我需要的排序算法必须将分组条目从5中排序。按字母顺序和7中未分组的条目。按字母顺序排列,不排序任何其他菜单项。基本上,我如何在不对所有菜单项进行排序的情况下对JMenu中的菜单项子组进行排序?我已经有一段时间没有使用Swing了,但我假设您可以将每个菜单项文本的字符串存储在对象数组中,并在
for
循环中呈现菜单项。然后可以将1、3和9作为字符串存储在数组中,将5和7作为字符串的ArrayList存储在第一个数组中。然后,在渲染第一个数组中的每个项目时,可以在它们之间插入JSepator,通过使用instanceof
关键字确保每个项目都是字符串。如果该项不是instanceof
字符串,而是instanceof
ArrayList,则可以为该内部ArrayList中的每个字符串呈现一个菜单项。您可以使用Collections.sort(mainArray[IndexeSofSubarray])
对每个内部ArrayList中的项目按字母顺序进行排序。由于数据的动态特性,我不确定是否可以直接实现此想法,但这可能是构建有效解决方案的良好起点!我可能需要先填充一个ArrayList,一旦这个ArrayList完全构建好,就把它转换成一个数组。希望有一个不那么“黑客”的解决方案,但已经怀疑这样的解决方案可能是一个哈哈。无论如何,谢谢你,也谢谢你编辑的标签@不客气!您完全可以为5和7使用ArrayList,而主数组仍然可以是数组。在整个过程中使用ArrayList也是可行的。在这种情况下,可以使用一个字符串作为分隔符,表示“insertjsepatorhere”。然后,您可以通过将项目添加到新的ArrayList并对其排序来对分隔符之间的项目进行排序。这也是一个好主意!我会去尝试一些东西,如果我想出一些对我的数据不太具体的东西,我会用我的算法报告回来!