我想用类似于此的UI创建一个JTable:
其中“+”和“ - ”表示添加或删除关联行或列的按钮。要确保按钮与现有行和列很好地对齐,最好将表扩展到数据部分之外,以包含按钮。因此,上表将有5行6列。
问题:
感谢您的帮助。
答案 0 :(得分:2)
简短的答案是(大多数情况下)是,答案很长,这有点工作。
我会利用JScrollPane
的行标题,有关详细信息,请参阅setRowHeader。
(从JavaDocs使用的图片)
这将要求您布置组件以匹配每行的高度。
表标题稍微复杂一些,并归结为这是否是自定义表实现。
如果您打算扩展JTable
(或其子组件),则应该考虑更换configureEnclosingScrollPane(以及相应的unconfigureEnclosingScrollPane)方法的功能。这将允许您将JTableHeader
包装在自定义组件中,并将其设置为滚动窗格的列标题位置。
如果没有,您需要自己调整滚动窗格的列标题。无论哪种方式,基本方法都是一样的。
您需要一个可以使用JTableHeader
的组件,并为您提供布局所需组件的方法。我会在BorderLayout
位置使用JTableHeader
,在South
位置使用控件{/ 1}}
IMHO
答案 1 :(得分:2)
如果您对其他用户界面开放:来自JXTable
项目的SwingX
有一个允许隐藏某些列的UI,或者之后将其恢复。这当然只有在您只想隐藏/显示现有列时才有用。如果您想添加全新的列,我担心SwingX
用户界面还不够。
对于添加/删除行,我会考虑使用包含此类操作的弹出菜单。有点类似于Microsoft Excel提供的。在那里你也没有+或 - 符号,但可以通过右键单击行号找到这些操作。