这些Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本引入的改进,并且可能使用不再可用的技术。
有关Java SE 9及其后续版本中更新的语言特性的摘要,请参阅Java语言变更。
有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息,请参阅JDK发布说明。
将数据拖放到空表中是一个独特的挑战。遵循以下正确的步骤:
TransferHandler
。setDragEnabled(true)
启用数据传输。你运行应用程序并尝试将有效数据拖放到表格中,但它拒绝了拖放。为什么会这样呢?
原因是空表(与空列表或空树不同)在滚动窗格中不占据任何空间。JTable
不会自动拉伸以填充JScrollPane
视口的高度 - 它只会占用所需的行的垂直空间。因此,当你拖动到空表上时,你实际上并没有在表格上方,所以拖放失败。
你可以通过调用JTable.setFillsViewportHeight(boolean)
来配置表格以允许在视口中的任何位置进行拖放。此属性的默认值为false,以确保向后兼容性。
以下示例FillViewportHeightDemo
允许你尝试拖放到空表中。该示例包含一个有五列的空表,其拖放模式设置为插入行,并且拖动源提供五个逗号分隔的自动递增值。
FillViewportHeightDemo
(下载JDK 7或更高版本)。或者,要自己编译和运行示例,请查阅示例索引。你可以查看
的源代码,但要记住的主要观点是,通常应在接受拖放数据的任何表格上调用FillViewportHeightDemo.java
setFillsViewportHeight(true)
。