我开始使用MiGLayout进行GUI设计,我需要的一个功能是根据其他组件的状态显示/隐藏某些组件.
当我注意到MiGLayout支持的一个组件约束时,我自己会编码hidemode.
这是否符合我的想法?如果是这样,假设hidemode已经设置,我该如何触发隐藏/取消隐藏动作?(查看文档后,我能够找到如何设置hidemode,但之后不再使用它)
hidemode设置组件的隐藏模式.如果已在"隐藏"模式中指定了隐藏模式,则可以通过组件约束覆盖此模式.隐藏模式指定了布局管理器应如何处理不可见的组件.模式是:
0 - 默认.意味着隐藏组件的处理方式与可见组件完全相同.
1 - 组件的大小(如果不可见)将设置为0,0.2
- 组件的大小(如果不可见)将设置为0,0并且间隙也将在其周围设置为0.
3 - 不可见组件根本不会参与布局,例如它不会占用网格单元.
示例:"hidemode 1"
在我正在处理的应用程序中,有表格数据(对于记录,它是使用的Java Swing应用程序JTables).在某些情况下,可以通过单击列标题对数据进行排序.我想知道的是,如果给定列是否可排序,向用户指示的好方法是什么?
我想出了以下可能性.
1)在每个可排序列中放置一个图标,表示它是可排序的.我个人不喜欢这个选项.
2)当鼠标悬停在标题上以指示它是可排序的时,将鼠标光标更改为其他内容.
3)将鼠标悬停在列上并说它可以排序时,在工具提示文本中添加注释.
有没有人有任何其他建议?
更新:
我认为澄清是有道理的.我的问题不是如何表明给定列当前已排序.这已经通过上/下排序三角模式实现.我想给用户一个线索,告诉他们在点击标题之前可以对哪些列进行排序以对其进行排序.
更新2:我想我应该解释为什么我没有完全卖掉选项#1.在我看来,如果要设置一个图标来指示哪些列可以排序,那么这将增加视觉混乱.在这种情况下,有时UI会在"鼠标悬停"上发生变化.例证:Windows Vista和7允许用户在列上添加过滤器,但只有用鼠标悬停在标题上时才会显示此指示符.