0

患者の名前を含む行を持つテーブルがあります。テーブル内の名前をクリックすると、クリックした患者に応じて下のボックスにさまざまな属性が表示されます。

これが私がこれまでに行ったことです。私がしたことが正しいかどうかはわかりません。テーブルが存在する GUI クラスに、示されているようにリスナーを追加しました。言うまでもなく、それは機能していません。誰かが何をする必要があるか説明できますか? 私はそれで混乱しています。

//Adding listeners for the table data.
void rowClickListener(MouseListener listenForMouseClickonRow)
 {
     table.addMouseListener( listenForMouseClickonRow);
     //table.getModel().addTableModelListener(listenForMouseClickonRow);
 }

次に、コントローラークラスにクラスを追加しました。これにより、必要のないこれらすべてのイベントを追加する必要がありました。

public class rowClickListener implements MouseListener
{
    @Override
    public void mouseClicked(MouseEvent e) {
        if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 1)
        {
            System.out.println("TEST mouse click");
        }
    }

    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub
    }

    @Override
    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub
    }

    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub
    }
}
4

1 に答える 1

3
    yourtable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent e) {
            //your handle
        }
    }

私はそれがずっとうまくいくと思います。を使用するListSelectionEventと、選択した行を取得できます。

また、一度に 1 つのレコードのみを選択する必要がある場合は、テーブルの選択モードを に設定することを忘れないでくださいSINGLE_SELECTION

于 2013-05-06T19:39:31.730 に答える