我应该使用什么Swing组件来显示歌曲和歌曲属性列表?

时间:2014-05-25 02:44:57

标签: java swing jtable jpanel jlist

我正在写一个可播放本地mp3文件的音乐播放器。我正在尝试显示供用户选择和播放的歌曲列表,但我无法确定要使用的Swing组件。

我想做什么

  • 在列表中显示歌曲
  • 在每个水平行中,显示歌曲条目
  • 在每列中,显示每个歌曲条目的属性(曲目名称,长度,专辑,艺术家)
  • 每列上方的
  • 是显示该属性
  • 的列标题
  • 当用户点击歌曲条目时,会突出显示
  • 通过单击标题
  • 按每列(曲目名称,长度,专辑,艺术家)对条目进行排序
  • 可调整大小的列宽
  • 双击条目进行播放
  • 最终,艺术家和专辑标签应该能够像超链接一样行事

我考虑的选项

JTable :无法突出显示整行,单元格可编辑

JList :列表是1“元素”宽,因此列和它们的标题很难设置,不确定将Swing组件放在列表元素中

很多JPanels :把很多JPanel放在一起实现我自己的显示器会非常困难而且非常混乱

我对其他我没有想到的选择以及我的任何误解持开放态度。

3 个答案:

答案 0 :(得分:5)

重新。 JTable

  

无法突出整行,..

致电JTable.setRowSelectionAllowed(boolean)

  

..细胞是可编辑的

覆盖TableModel.isCellEditable(row,col)

答案 1 :(得分:1)

您应该使用 JTable 。 JTable可以突出显示整行,您可以选择是否可编辑单元格。

您应该传递自己的TableModelTableColumnModel

如果您在编写具有行选择且没有可编辑单元格的JTable时遇到问题,则可以使用您拥有的代码发布新问题。

答案 2 :(得分:1)

如果您想使用付费路线,可以使用JIDE Grid之类的内容。如果您想要免费,那么要么坚持使用已配置的JTable(如前所述),要么查看为您提供更好的UI组件的库,如Insubstantial

这里有一堆关于如何编写表格中某些内容的examples