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