如何引用JTABLE的第一列并为该列中单击的每一行添加操作?

neekobn8  于 2022-10-15  发布在  Eclipse
关注(0)|答案(1)|浏览(137)

我对编程非常陌生,如果这是一个非常愚蠢的问题,我很抱歉。我有一个表与列-音频(Blob),标题和艺术家的名字。我希望用户能够播放歌曲,如果他们按下音频单元,然后播放按钮。我很难尝试引用保存音频的特定列行。这是我一直试图学习的链接,但我什么也得不到。How can I determine which cell in a JTable was selected?.如何引用这些项,以便在单击第1行时从该文件中提取音频,以便它可以播放?我会编写一个for循环吗?我知道如何播放这首歌,我只是不能让它引用索引本身。英语不是我的第一语言,如果没有很好地解释,我很抱歉。
编辑:

`JTable table;
 File sound;
 AudioInputStream ais;
 Clip clip;
 table.addMouseListener(new java.awt.event.MouseAdapter() {
    @Override
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    try{
          int row = table.getSelectedRow();
          String selectedItem=(String) table.getValueAt(row,0);
           sound= new File(selectedItem);
            ais= AudioSystem.getAudioInputStream(sound);
            clip= AudioSystem.getClip();
            clip.open(ais);
            clip.start();
        }

    catch(Exception exp ){
        JOptionPane.showMessageDialog(null, exp);
    }       
    }});

当我单击行时,我想让它播放这首歌,但得到的却是一个fileNotFoundException。提取文件的方法不正确吗?

owfi6suc

owfi6suc1#

我就是不能让它引用索引本身。
我不明白问题出在哪里。
你可以从另一个帖子中看到你可以使用:

int row = table.getSelectedRow();

您将数据加载到表中,您知道哪一列包含要播放的歌曲的文件名,因此您只需执行以下操作:

String filename = table.getValueAt(row, ???);

我知道怎么弹这首歌
然后你播放这首歌。

相关问题