2012-01-13 20 views
0

私はJtableを使用してグリッドにデータを表示するコードの束を持っています。私はマウスのダブルクリックイベントをキャプチャする必要があります。しかし、この単純なコードが、グリッドのヘッダー上で動作しているだけで、グリッドの行には作用しないものもあります。どんな手掛かり?もう1つ、グリッドも編集可能です。マウスJTableをクリック

ありがとうございます。

よろしくお願いいたします。 マニッシュ

+3

*このシンプルなコード*:どのシンプルなコード? –

+1

crossposted https://forums.oracle.com/forums/thread.jspa?threadID=2332433&tstart=0 – mKorbel

+1

「任意の手がかり」とはどういう意味ですか?昨日、あなたの十字架にこの行動の理由が書いてありました。 – camickr

答えて

1

いくつかのコードが参考になります。あなたはこれに似た何かをしていますか?

table.getTableHeader().addMouseListener(new MouseAdapter() { 

    @Override 
    public void mouseClicked(MouseEvent event) { 
     if (e.getClickCount() == 2 && !e.isConsumed()) { 
     e.consume(); 
     // handle double click here 
    } 

}); 
+0

返信いただきありがとうございます。コードは編集不可能な行で正常に動作しています。しかし、私は編集可能な行のために同じことをどうしたらいいですか?その – itcmanish

0

あなたがボタンの代わりに任意のコンポーネントを提供することができ、ここで

class ButtonEditor extends DefaultCellEditor { 
    protected JButton button; 

    private String label; 

    private boolean isPushed; 

    public ButtonEditor(JCheckBox checkBox) { 
    super(checkBox); 
    button = new JButton(); 
    button.setOpaque(true); 
    button.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
     fireEditingStopped(); 
     } 
    }); 
    } 

としてそれを行うことができます。 参照full example